Hi Thomas,
[paul@sputnik4 ~]$ python --version
Python 2.7.5
[2] There is not output remaining on that arch machine. A transcript of the whole process gets sent back to flod (on
sitka.tasktools.org), so we have it, but do not currently expose it. The plan is to provide access in two ways:
a) To put up a web server where the docroot points to the flod results directory. This will let us all navigate the full transcripts or all builds.
b) To put our keys on all the build machines, so we can ssh there and debug/build/test on the actual build machine.
Fredde, can we get everyone’s keys on all machines?
[3] Let’s investigate. Walking through it, the latest timew commit is 872499a5, so let’s check the test numbers for Fedora 25 for that commit, and see where the problem is. Looking the build transcript for that commit, for fedora, we see:
$ cd /opt/flod2/central
$ tail -14 $(grep -l fedora $(grep -l 872499a5 result/archive/*)) | head -6
Passed: 798
Runtime: 8.61 seconds
So there we see right away that you are right, and flod is wrong. But is it inherently wrong, or is it being deceived? There are only three failures, zero skips. The next step is to see what the digest event looks like, which is a summary of the transcript. We expect it to list warnings, error, and test failures.
$ cat $(grep -l fedora $(grep -l 872499a5 digest/archive/*))
change.repository: /opt/gitea/repositories/tm/timew.git
change.timestamp: 1492033560
digest.testsExpected: 805
digest.testsPassed: 798
digest.testsFailed: 3
project.ignore: README*,*.md
build.duration: 37.984548
change.project: timew
digest.testsSkipped: 0
project.job: {bash}{nl}{nl}set -x{nl}git clone --recursive -b 1.1.0 https://git.tasktools.org/TM/timew.git timew.git{nl}cd timew.git{nl}git reset --hard 872499a54e234174ec7dea7be20cda57c23491b8{nl}cmake .{nl}make{nl}make test{nl} platform.description: Fedora 25
change.commit: 872499a54e234174ec7dea7be20cda57c23491b8
change.author: Paul Beckingham
platform.dependencies: cmake,git,build-essential,gnutls-dev,uuid-dev,python
digest.buildErrors: 1
digest.funky: 1
platform.scratch: /tmp
platform.details: 64-bit;GCC 6.3.1;CMake 3.6.2
digest.buildWarnings: 1
change.branch: 1.1.0
digest.clean: 0
/tmp/timew.754b08fc64836ed0c8eaaff65155fd127136161e/timew.git/src/validate.cpp:162:13: warning: ‘void warnOnNewTag(const Rules&, Database&, const Interval&)’ defined but not used [-Wunused-function]
not ok 3 - move.t: Move an interval over another with :adjust
not ok 1 - tags.t: Test that tags command filtering excludes tags that are outside the filter range
not ok 6 - start.t: Test timed start
# ERROR: CommandError on file /tmp/timew.872499a54e234174ec7dea7be20cda57c23491b8/timew.git/test/start.t line 69 in test_timed_start: 'self.t("start 10:30am")':
The problem appears to be that it thinks there should be 805 tests. That’s not right. Where did that number come from?
$ grep '^1..' $(grep -l fedora $(grep -l 872499a5 result/archive/*)) | cut -c4-
129
96
101
261
39
7
6
4
3
1
4
3
3
7
7
1
1
3
5
6
20
4
3
5
14
36
2
2
5
2
1
3
2
7
12
Those add up to 805. That means some timew test script is emitting “1..N” as the first line of output, and it should be “1..N-2”. That should be easy to find. It was, and here’s the problem:
# rules.t
1..6
ok 1 - Rules set string, get string
ok 2 - Rules set string, get string
terminate called after throwing an instance of 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >'
So not a flod problem this time but a test crash. I’ll fix that. Well spotted Thomas!
P