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