More progress...

On 3/14/2017 4:36 PM, Ross Berteig wrote:
....
TODO

* Fix all the rest of amend.test where it is all tangled up in itself related to the UUID.
Fixed by capturing at most 40 chars of uuid from command output, which is all that was present in many cases, and by matching only those first 40 chars against the uuid presented in the test cases. Since these are all uuids of artifacts created for each test case, that seems more than safe enough.

* Figure out what to do about merge5.test where it is expecting SHA1 *everywhere*. The answer here might be to make it possible for fossil sqlite3 to create a repo that is still set up for SHA1 hashes, whatever that exactly means. At present, the command seems to be setting the hash mode, probably as a side effect of some other "innocent" function.

Still TODO.


* Noticed Jan's narrowing of my kludge to just MinGW for Win32 builds. I still think the right answer is to either not use strtok_r() at all, or find a proper parking place for the implementation for MinGW on Win32.


Richard fixed this minutes after I noted it as something to consider, and the fixed version builds just fine on my MinGW configuration.

TODO:

* json.test creates an empty file and adds it, since the SHA1 of 0 bytes is well known to begin [da39a3ee], which a further test goes on to look up by that exact uuid. That should be an SHA3 of the empty file of course. The test case is easy to switch to the [a7ffc6...] value.

* For the record, SHA3 of 0 bytes is:
a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a

* There is a cascade of failure when the wrong hash is used to look up the file artifact in json-artifact-file-env-*, which results in the test framework exiting abnormally. Bad framework. Bad test too.

* The SQLITE_ERROR in merge5.test causes a cascade of failure in the test case that causes the test framework to halt there and not go on to any of the later *.test files. A test framework should not do that, it should log louder perhaps, but absolutely should go on from there. At least the make test rule saw tester.tcl exiting with non-zero status, so my build and test script properly called that run a failure.

* When the framework exited early, it abandoned a bunch of home_* and repo_* folders in /tmp rather than cleaning them up as it does when it completes normally.

* pre-commit-warnings-1 failed. On inspection, the test is using the output of fossil test-commit-warnings in the fossil checkout, and assuming that produces a list of files that are not clean text. Apparently some checkin since that test was created changed the test-commit-warnings command to respect the various *glob settings, and today the output is empty, causing the test to obviously fail. Using the --no-settings option does get back approximately the old behavior, but there are a lot of differences between the actual and reference output. Perhaps the right kludge is to cherry pick a handful of conditions to verify appear in the output.... Needs further thought.

* pre-commit-warnings should really use files crafted to stimulate the various conditions that are important to get warnings about, and those files ought to be generated by (or included in) the test suite rather than depend on the fossil workspace checkout.

* The halts in json.test and merge5.test have blocked runs through slightly more than half of the suite, aside from a few tests which were hand run in the course of checking earlier changes. Monsters lurk therein.

--
Ross Berteig                               r...@cheshireeng.com
Cheshire Engineering Corp.           http://www.CheshireEng.com/
+1 626 303 1602

_______________________________________________
fossil-dev mailing list
fossil-dev@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/fossil-dev

Reply via email to