I’m running builds of 8.0 to make sure we don’t have any major test failures, and I’ve run into a few problems so far. I’ll put them in separate emails so they are more manageable. If anyone can offer any assistance, that would be most appreciated. I can supply any info needed, up to getting you a logon to the systems in question.
Next up are a series of Critbit failures on a current version of illumos:
uname -a
SunOS centaur 5.11 joyent_20201023T231824Z i86pc i386 i86pc Solaris
...
Doing tests in post_modules/CritBit/testsuite (856 tests, pid 72180)
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 725 (shift 2) (CRNL) failed.
1: mixed a() { return GET_TREE(); }
2: mixed b() { return GET_TREE()->get_subtree(); }
3:
o->a(): THE_TREE
o->b(): ADT._CritBit.BigNumTree()
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 727 (shift 1) failed.
1: mixed a() { return GET_TREE(); }
2: mixed b() { return GET_TREE()->copy(); }
3:
o->a(): THE_TREE
o->b(): ADT._CritBit.BigNumTree()
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 729 (shift 0) (CRNL) failed.
1: mixed a() { return ADT.CritBit.BigNumTree()+GET_TREE(); }
2: mixed b() { return GET_TREE(); }
3:
o->a(): ADT._CritBit.BigNumTree()
o->b(): THE_TREE
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 731 (shift 2) (CRNL) failed.
1: mixed a() { return GET_TREE()+GET_TREE(); }
2: mixed b() { return GET_TREE(); }
3:
o->a(): ADT._CritBit.BigNumTree()
o->b(): THE_TREE
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 733 (shift 1) failed.
1: mixed a() { return GET_TREE()+ADT.CritBit.BigNumTree(); }
2: mixed b() { return GET_TREE(); }
3:
o->a(): ADT._CritBit.BigNumTree()
o->b(): THE_TREE
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 737 (shift 2) (CRNL) failed.
1: mixed a() { return GET_TREE()-ADT.CritBit.BigNumTree(); }
2: mixed b() { return GET_TREE(); }
3:
o->a(): ADT._CritBit.BigNumTree()
o->b(): THE_TREE
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 739 (shift 1) failed:
Value mismatch: (3919933115663279717976 : 212) vs (3919933115663279717976 : 0)
post_modules/CritBit/testsuite:10: testsuite()->a()
test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike:1109:
/main()->main(4,({"/home/hww3/Pike-v8.0.1094/build/sunos-5.11-i86pc/test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike",0,0,"post_modules/CritBit/testsuite"}))
1: mixed a() {
2: mapping m = GET_SAMPLE();
3: object tree = GET_TREE();
4: function sortfun = GET_SORTFUN();
5: array a = GET_SORTED_A();
6:
7:
8: foreach (GET_SAMPLE(); mixed a; mixed b) {
9: if (b != GET_TREE()[a])
10: error("Value mismatch: (%O : %O) vs (%O : %O)\n", a, b, a, GET_TREE()[a]);
11: }
12:
13: return 1;
14: ; }
15: mixed b() { return 1; }
16:
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 742 (shift 1) (CRNL) failed:
next(27670116110564327422) == 183517433417299474231880 should be 46116860184273879036
post_modules/CritBit/testsuite:15: testsuite()->a()
test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike:1109:
/main()->main(4,({"/home/hww3/Pike-v8.0.1094/build/sunos-5.11-i86pc/test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike",0,0,"post_modules/CritBit/testsuite"}))
1: mixed a() {
2: mapping m = GET_SAMPLE();
3: object tree = GET_TREE();
4: function sortfun = GET_SORTFUN();
5: array a = GET_SORTED_A();
6:
7:
8: tree = tree->copy();
9: int i;
10:
11: for (i = 1; i < sizeof(a); i += 2) m_delete(tree, a[i]);
12:
13: for (i = 1; i+1 < sizeof(a); i += 2) {
14: if (tree->next(a[i]) != a[i+1])
15: error("next(%O) == %O should be %O\n", a[i], tree->next(a[i]), a[i+1]);
16: if (tree->previous(a[i]) != a[i-1])
17: error("previous(%O) == %O should be %O\n", a[i], tree->previous(a[i]), a[i-1]);
18: }
19:
20: return 1;
21: ; }
22: mixed b() { return 1; }
23:
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 743 (shift 2) (CRNL) failed:
Key mismatch in range iterate(): (0 : 138350580552821637106) vs (0 : 9223372036854775808)
post_modules/CritBit/testsuite:11: testsuite()->a()
test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike:1109:
/main()->main(4,({"/home/hww3/Pike-v8.0.1094/build/sunos-5.11-i86pc/test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike",0,0,"post_modules/CritBit/testsuite"}))
1: mixed a() {
2: mapping m = GET_SAMPLE();
3: object tree = GET_TREE();
4: function sortfun = GET_SORTFUN();
5: array a = GET_SORTED_A();
6:
7:
8: mixed t = GET_TREE()->first();
9: foreach (GET_SORTED_A(); int i; mixed key) {
10: if (t != key)
11: error("Key mismatch in range iterate(): (%O : %O) vs (%O : %O)\n", i, t, i, key);
12: t = GET_TREE()->next(t);
13: if (GET_SAMPLE()[key] != GET_TREE()[key])
14: error("Value mismatch in order: (%O : %O) vs (%O : %O)\n", key, GET_SAMPLE()[key], key, GET_TREE()[key]);
15: mixed nth = GET_TREE()->nth(i)[0];
16: if (nth != key)
17: error("Value mismatch in nth(): (%O : %O) vs (%O : %O)\n", i, key, i, nth);
18: }
19:
20:
21: return 1;
22: ; }
23: mixed b() { return 1; }
24:
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 744 (shift 0) failed:
Key mismatch in range iterate(): (0 : 9223372036854775808) vs (0 : 138350580552821637106)
post_modules/CritBit/testsuite:12: testsuite()->test_range_operator(1)
post_modules/CritBit/testsuite:22: testsuite()->a()
test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike:1109:
/main()->main(4,({"/home/hww3/Pike-v8.0.1094/build/sunos-5.11-i86pc/test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike",0,0,"post_modules/CritBit/testsuite"}))
1: mixed a() {
2: mapping m = GET_SAMPLE();
3: object tree = GET_TREE();
4: function sortfun = GET_SORTFUN();
5: array a = GET_SORTED_A();
6:
7:
8: void test_range_operator(int step) {
9: int i = (step < 0) ? sizeof(tree)-1 : 0;
10: foreach (tree->_get_iterator(step); mixed key; mixed value) {
11: if (GET_SORTED_A()[i] != key)
12: error("Key mismatch in range iterate(): (%O : %O) vs (%O : %O)\n", i, GET_SORTED_A()[i], i, key);
13: if (GET_SAMPLE()[GET_SORTED_A()[i] ] != value)
14: error("Value mismatch in range iterate(): (%O : %O) vs (%O : %O)\n", i, GET_SAMPLE()[GET_SORTED_A()[i] ], i, value);
15: i+=step;
16: }
17:
18: if (step > 0) test_range_operator(-step);
19: };
20:
21: foreach (enumerate(40, 13, 1); ; int n) {
22: if (n) test_range_operator(n);
23: }
24:
25: return 1;
26: ; }
27: mixed b() { return 1; }
28:
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 745 (shift 1) failed:
Key mismatch in range iterate(): (6940 : 128029627243581142976968) vs (6940 : 138350580552821637106)
post_modules/CritBit/testsuite:15: testsuite()->test_range_operator(6940,8743,1597)
post_modules/CritBit/testsuite:42: testsuite()->a()
test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike:1109:
/main()->main(4,({"/home/hww3/Pike-v8.0.1094/build/sunos-5.11-i86pc/test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike",0,0,"post_modules/CritBit/testsuite"}))
1: mixed a() {
2: mapping m = GET_SAMPLE();
3: object tree = GET_TREE();
4: function sortfun = GET_SORTFUN();
5: array a = GET_SORTED_A();
6:
7:
8: void test_range_operator(int start, int stop, int step) {
9: int i = start;
10:
11: if (step == 0) return;
12:
13: foreach (tree->_get_iterator(step, a[start], a[stop]); mixed key; mixed value) {
14: if (GET_SORTED_A()[i] != key)
15: error("Key mismatch in range iterate(): (%O : %O) vs (%O : %O)\n", i, GET_SORTED_A()[i], i, key);
16: if (GET_SAMPLE()[GET_SORTED_A()[i] ] != value)
17: error("Value mismatch in range iterate(): (%O : %O) vs (%O : %O)\n", i, GET_SAMPLE()[GET_SORTED_A()[i] ], i, value);
18: i+=step;
19: }
20:
21: #if constant(ADT.CritBit.Range)
22: object r = ADT.CritBit.Range(a[start], a[stop]);
23: object rs = ADT.CritBit.RangeSet(object_program(tree));
24: rs[r] = 1;
25: foreach (a;; mixed key) {
26: if (equal(GET_SORTFUN()(({ key, r.b, r.a}))[1], key)) {
27: if (undefinedp(rs[key])) {
28: error("RangeSet error. %O not within [%O,%O]\n", key, r.a, r.b);
29: }
30: } else {
31: if (!undefinedp(rs[key])) {
32: error("RangeSet error. %O should not be within [%O,%O]\next: %O\n", key, r.a, r.b, rs->tree->next(key));
33: }
34: }
35: }
36: #endif
37: };
38:
39: for (int i = 0; i < 100; i++) {
40: int start = random(sizeof(a));
41: int stop = start + random(sizeof(a)-start);
42: test_range_operator(start, stop, random(stop-start));
43: }
44:
45: return 1;
46: ; }
47: mixed b() { return 1; }
48:
/home/hww3/Pike-v8.0.1094/src/post_modules/CritBit/testsuite.in:203: Test 770 (shift 2) failed:
Key mismatch in random delete. 44318302637087197752636 : 2402 vs 0
post_modules/CritBit/testsuite:10: testsuite()->a()
test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike:1109:
/main()->main(4,({"/home/hww3/Pike-v8.0.1094/build/sunos-5.11-i86pc/test-install/pike/8.0.1094/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike",0,0,"post_modules/CritBit/testsuite"}))
1: mixed a() {
2: mapping m = GET_SAMPLE();
3: object tree = GET_TREE();
4: function sortfun = GET_SORTFUN();
5: array a = GET_SORTED_A();
6:
7:
8: foreach (tree; mixed key; mixed val) {
9: if (val != m[key])
10: error("Key mismatch in random delete. %O : %O vs %O\n", key, val, m[key]);
11: array t = random(tree);
12: m_delete(tree, t[0]);
13: m_delete(m, t[0]);
14: if (!zero_type(tree[t[0] ])) error("m_delete failed in random delete (key: %O)\n", t[0]);
15: }
16: if (sizeof(m) != sizeof(tree)) {
17: error("Size mismatch after random delete. %O vs %O\n", sizeof(m), sizeof(tree));
18: }
19:
20: return 1;
21: ; }
22: mixed b() { return 1; }
23:
Subresult: 856 tests, 12 failed, 0 skipped