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