ltrace icon indicating copy to clipboard operation
ltrace copied to clipboard

Incorrect tests in dwarf.exp

Open greno4ka opened this issue 8 years ago • 2 comments

# I found several incorrect tests in dwarf.exp!

When I make check on i586, I have next results:

libdwarftest.so->treetest({ 2, nil, nil })       = { 3, nil, nil }
libdwarftest.so->treetest({ 3, nil, { 4, nil, nil } } <unfinished ...>
libdwarftest.so->treetest({ 4, nil, nil })       = { 5, nil, nil }
<... treetest resumed> )                         = { 4, nil, { 5, nil, nil } }
<... treetest resumed> )                         = { 2, { 3, nil, nil }, { 4, nil, { 5, nil, nil } } }

It seems that they are right, but they fail tests

On x86_64 the picture is following:

libdwarftest.so->treetest({ 2, nil, nil })       = nil
libdwarftest.so->treetest({ 3, nil, { 4, nil, nil } } <unfinished ...>
libdwarftest.so->treetest({ 4, nil, nil })       = nil
<... treetest resumed> )                         = { 5, nil, nil }
<... treetest resumed> )                         = { 2, { 3, nil, nil }, { 4, nil, { 5, nil, nil } } }

The tests are passed, but I think values are wrong. Probably solution is to add some actions with tree in treetest function, such as this.

struct tree treetest(struct tree* t)
{
    if(t->left  != NULL) printf("%d",treetest(t->left).x);
    if(t->right != NULL) printf("%d",treetest(t->right).x);
    t->x++;
    return *t;
}

With such addition, the results on x86_64 the same as on i586. I propose, that gcc optimizes this function. Even with -O0.

Please, can you verify your tests?

greno4ka avatar Nov 17 '17 17:11 greno4ka

Here list of all errors:

FAIL: libdwarftest.so->treetest({ 2, nil, nil }) * = nil in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: libdwarftest.so->treetest({ 4, nil, nil }) * = nil in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: <... treetest resumed> ) * = { 5, nil, nil } in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected]({ 5, nil }) * = <void> in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected]({ 2, nil, nil }) * = nil in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected]({ 4, nil, nil }) * = nil in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected]({ { recurse^, 6 }, 5 }) * = <void> in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected](A, B) * = 0 in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected](.* 1.000000, 2.000000, 1.000000, 2.000000, 1.000000 [^\.*]* * = 1.000000 in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected](GREEN2) * = RED1 in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected](BLUE4) * = RED3 in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected](RED5) * = RED5 in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected]('t') * = 4 in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected](nil) * = -1 in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected](0x[0-9a-z]*, 0x[0-9a-z]*) * = <void> in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected]() * = <void> in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: libdwarftest.so->treetest({ 2, nil, nil }) * = nil in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: libdwarftest.so->treetest({ 4, nil, nil }) * = nil in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: <... treetest resumed> ) * = { 5, nil, nil } in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: dwarf->usleep(33) * = 0 in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected](33 <unfinished ...> in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected](0x[0-9a-z]*) * = -1 in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1
FAIL: [email protected](0x[0-9a-z]*) * = -1 in /usr/src/RPM/BUILD/ltrace-0.7.91.0.198.git82c6640/testsuite/ltrace.main/dwarf.ltrace for 0 times, should be 1

greno4ka avatar Nov 20 '17 14:11 greno4ka

Thanks for the report. Just so you know, this isn't the primary ltrace repo, but I'll get it to the right place. Also, keep in mind that this project is a bit dormant right now, so don't expect a lot of activity. I want to make a release of what we have now, and if you have fixes, those should make it in.

dkogan avatar Nov 20 '17 18:11 dkogan