Today's progress:

* As of checkin [3537c75cc3] many tests run clean without errors: amend.test, clean.test, cmdline.test, comment.test, contains-selector.test, delta1.test, diff.test, file1.test, glob.test, merge1.test, merge2.test, merge3.test, merge4.test, merge6.test, merge_exe.test, merge_renames.test, merge_warn.test, mv-rm.test, revert.test, set-manifest.test, settings-repo.test, settings.test, symlinks.test, th1-docs.test, th1-hooks.test, th1-repo.test, th1-tcl.test, th1.test, unversioned.test, utf.test, wiki.test. This is most of the test files, containing by far the majority of the test cases.

* commit-warning.test only contains a single case that is now marked "knownBug" because the it depends too strongly on the files checked into fossil's own repository. My personal goal is to eliminate every test case that I can that depends on fossil's own repository contents or otherwise must be run in an open checkout of that repository.

* stash.testhas one new failure: stash-1-diff, and three previously marked knownBug.

 * merge5.test is skipped pending further work.

* Fixed test framework bug exposed by cascaded failures in json.test and merge5.test with a catch command protecting the invocation of each .test file. I don't speak Tcl idiomatically, someone who does might find room to improve on what I did here. On error, it displays all the facts, and allows the harness to move on to the next file.

TODO:

* Figure out why stash show and stash diff produce different output, which is right, and do the right thing in stash.test.


* Fix sqlite3 command issues exposed by merge5.test and by dead code removed from json.test incheckin [5ee57d84]. It should be possible to reconstitute a test repository containing only SHA1 hashes with fossil sqlite3 --no-repository, even in a version 2.1 or later build.



On 3/15/2017 12:16 AM, Ross Berteig wrote:
More progress...
....

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.

Skipped merge5 by brute force, but also fixed test framework bug.


* 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.

May need to examine this still, I caught the error thrown by *.test, but did not make sure any needed cleanups happened.


* 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.


I manually ran the rest of the test files. Results reported above.

--
Ross Berteig                               [email protected]
Cheshire Engineering Corp.           http://www.CheshireEng.com/
+1 626 303 1602

_______________________________________________
fossil-dev mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/fossil-dev

Reply via email to