On 9/12/16 Sep 12 -4:33 PM, Robert Goldman wrote:
I ran the tests again on all three platforms.
....
Windows:
Allegro, ccl, ECL-bytecodes, and SBCL all fail test-force. ECL-bytecodes also fails test-run-program.
These seem to be failing here:
(DBG "Check that require-system of touched .asd will reload the asdf.") (DBG "(That's what it does now, but if it could be fixed that'd be nice.)") (unset-asdf-cache-entry '(locate-system "test-asdf")) (unset-asdf-cache-entry '(find-system "test-asdf")) (unset-asdf-cache-entry '(find-system "test-asdf/force")) (touch-file "test-asdf.asd" :timestamp (+ 10000 (get-file-stamp file1))) (require-system 'test-asdf/force) (assert-equal (asymval :*times-loaded* :test-asdf-system) 2)
Looks like *TIMES-LOADED* is evaluating to 1 instead of 2.
Anyone know why this would have changed?
Looking further, it seems like getting the proper results here relies on TOUCH-FILE (script-support.lisp) which, in turn, relies on being able to invoke "touch" through a shell. So I wonder not so much why this is broken, as why it ever worked. Possibly because I have always run the tests with Cygwin installed.
According to this: http://superuser.com/questions/292630/how-can-i-change-the-timestamp-on-a-fi... it looks like on Windows if we need to set the new time to a particular time, we should use PowerShell, but if we only want to set to the *current* time, we can do it with windows Copy. But... that won't satisfy the ASSERT-EQUAL in TOUCH-FILE.
Fare -- should we be replacing this, on windows, with the windows-native "copy"? Or is there some reason why we must have the ability to set the exact time, instead of simply increasing it to be greater than it was in the past?
thanks, r