rohc tests failing

Asked by matthew on 2013-03-12

Hello, I just recently installed the latest 5.1 build on a Centos 64 bit install. My GCC build is: gcc (GCC) 4.1.2

At first I could not get the build to work so I applied the patch described in http://bazaar.launchpad.net/~didier-barvaux/rohc/main/revision/614

Then, similar to another bug reporter, I then experienced another problem with "make check" that I solved using the solution found in: http://bazaar.launchpad.net/~didier-barvaux/rohc/1.5.x/revision/560

Now I am seeing a new problem.

PASS: test_feedback2_ack_smallcid_smallsn_crc.sh
PASS: test_feedback2_ack_smallcid_largesn_sn-crc.sh
PASS: test_feedback2_ack_largecid_largesn_sn-crc.sh
PASS: test_feedback2_ack_largecid_smallsn_crc.sh
==================
All 4 tests passed
==================
make[5]: Leaving directory `/data/home/user/dev/rohc-1.5.1/test/functional/feedback2'
make[4]: Leaving directory `/data/home/user/dev/rohc-1.5.1/test/functional/feedback2'
make[3]: Leaving directory `/data/home/user/dev/rohc-1.5.1/test/functional/feedback2'
Making check in decompress_feedback_only
make[3]: Entering directory `/data/home/user/dev/rohc-1.5.1/test/functional/decompress_feedback_only'
make test_decompress_feedback_only
make[4]: Entering directory `/data/home/user/dev/rohc-1.5.1/test/functional/decompress_feedback_only'
make[4]: `test_decompress_feedback_only' is up to date.
make[4]: Leaving directory `/data/home/user/dev/rohc-1.5.1/test/functional/decompress_feedback_only'
make check-TESTS
make[4]: Entering directory `/data/home/user/dev/rohc-1.5.1/test/functional/decompress_feedback_only'
make[5]: Entering directory `/data/home/user/dev/rohc-1.5.1/test/functional/decompress_feedback_only'
FAIL: test_decompress_feedback_only.sh
===========================================================
1 of 1 test failed
See test/functional/decompress_feedback_only/test-suite.log
Please report to http://rohc-lib.org/
===========================================================

As you can see the decompress_feedback_only is failing.

The contents of the test-suite.log file are simply:

=================================================================================
   ROHC library 1.5.1: test/functional/decompress_feedback_only/test-suite.log
=================================================================================

1 of 1 test failed.

.. contents:: :depth: 2

FAIL: test_decompress_feedback_only.sh (exit: 1)
================================================

Please let me know if there is anymore information I can provide, thank you.

(edit) I'll add the following missing information from above.

My configure was

./configure --prefix=/usr --libdir=/usr/lib64 --enable-examples --enable-rohc-apps --enable-rohc-stats --enable-rohc-tests --enable-rohc-tests-valgrind --enable-rohc-debug=2

and I did not modify the source other than applying the two patches previously mentioned.

Question information

Language:
English Edit question
Status:
Solved
For:
rohc Edit question
Assignee:
No assignee Edit question
Last query:
2013-03-14
Last reply:
2013-03-18
matthew (xcalibre0) said : #1

Incidentally, if I run the test script file manually it succeeds. See below:

└──> ./test_decompress_feedback_only.sh verbose verbose
run test without valgrind...
[rohc_comp.c:155 rohc_alloc_compressor()] creating compressor
[rohc_comp.c:649 rohc_comp_set_wlsb_window_width()] width of W-LSB sliding window set to 4
[rohc_comp.c:703 rohc_comp_set_periodic_refreshes()] IR timeout for context periodic refreshes set to 1700
[rohc_comp.c:705 rohc_comp_set_periodic_refreshes()] FO timeout for context periodic refreshes set to 700
[rohc_comp.c:1607 c_alloc_contexts()] enlarge the context array from 0 to 4 elements (MAX_CID = 15)
[rohc_decomp.c:1758 rohc_decomp_create_contexts()] room for 16 decompression contexts created
[rohc_decomp.c:420 rohc_decompress()] decompress the 5-byte packet #1
[rohc_decomp.c:1636 d_decode_feedback_first()] skip 0 byte(s) of padding
[rohc_decomp.c:1707 d_decode_feedback()] feedback present (header = 1 bytes, data = 4 bytes)
[rohc_comp.c:1210 c_deliver_feedback()] deliver 4 byte(s) of feedback to the right context
[rohc_comp.c:1246 c_deliver_feedback()] feedback size = 4
[ERROR] [rohc_comp.c:1273 c_deliver_feedback()] context not found (CID = 0)
[rohc_decomp.c:619 d_decode_header()] feedback-only packet, stop decompression
decompression is successful
[rohc_comp.c:271 rohc_free_compressor()] free contexts
[rohc_comp.c:275 rohc_free_compressor()] free feedback buffer
test run without valgrind (exit code 0)

matthew (xcalibre0) said : #2

Here is the make -n of check-TESTS in the offending directory:

└──> make -n check-TESTS
if test check-TESTS != recheck; then \
           list='test_decompress_feedback_only.sh.log'; test -z "$list" || rm -f $list; \
         fi
test -z "test-suite.log" || rm -f test-suite.log
list='' list2='test_decompress_feedback_only.sh.log'; for f in $list2; do \
          test .log = $f && continue; \
          if test check-TESTS = recheck; then \
            test -f $f || continue; \
            if test -r $f && read line < $f; then \
              case $line in FAIL*|XPASS*) : ;; *) continue;; esac; \
            fi; \
          fi; \
          if test -z "$list"; then list=$f; else list="$list $f"; fi; \
        done; \
        if test check-TESTS = recheck && test -n "$list"; then \
          { am__dry=no; case $MAKEFLAGS in *\\[\ \ ]*) echo 'am--echo: ; @echo "AM" OK' | make -f - 2>/dev/null | grep '^AM OK$' >/dev/null || am__dry=yes;; *) for am__flg in $MAKEFLAGS; do case $am__flg in *=*|--*) ;; *n*) am__dry=yes; break;; esac; done;; esac; test $am__dry = yes; } || rm -f $list || exit 1; \
        fi; \
        make test-suite.log TEST_LOGS="$list"

matthew (xcalibre0) said : #3

I tried running make -k check to "keep going" after the initial failed test. Almost all tests passed the following are the fails:

FAIL: test_decompress_feedback_only.sh
FAIL: test_piggybacking_feedback.sh
FAIL: generate_statistics.sh

Hi Matthew,

The test does not fail when you run it manually because it does not run within Valgrind. When you run 'make check', the test is run within Valgrind because you run the configure script with the --enable-rohc-tests-valgrind option.

To run the test within Valgrind manually, please define the USE_VALGRIND environment variable.

Example on my system:
-------------
$ GREP=grep USE_VALGRIND=yes ./test/functional/decompress_feedback_only/test_decompress_feedback_only.sh verbose verbose
run test without valgrind...
[rohc_comp.c:155 rohc_alloc_compressor()] creating compressor
[rohc_comp.c:649 rohc_comp_set_wlsb_window_width()] width of W-LSB sliding window set to 4
[rohc_comp.c:703 rohc_comp_set_periodic_refreshes()] IR timeout for context periodic refreshes set to 1700
[rohc_comp.c:705 rohc_comp_set_periodic_refreshes()] FO timeout for context periodic refreshes set to 700
[rohc_comp.c:1607 c_alloc_contexts()] enlarge the context array from 0 to 4 elements (MAX_CID = 15)
[rohc_decomp.c:1782 rohc_decomp_create_contexts()] room for 16 decompression contexts created
[rohc_decomp.c:420 rohc_decompress()] decompress the 5-byte packet #1
[rohc_decomp.c:1659 d_decode_feedback_first()] skip 0 byte(s) of padding
[rohc_decomp.c:1730 d_decode_feedback()] feedback present (header = 1 bytes, data = 4 bytes)
[rohc_comp.c:1210 c_deliver_feedback()] deliver 4 byte(s) of feedback to the right context
[rohc_comp.c:1246 c_deliver_feedback()] feedback size = 4
[ERROR] [rohc_comp.c:1273 c_deliver_feedback()] context not found (CID = 0)
[rohc_decomp.c:619 d_decode_header()] feedback-only packet, stop decompression
decompression is successful
[rohc_comp.c:271 rohc_free_compressor()] free contexts
[rohc_comp.c:275 rohc_free_compressor()] free feedback buffer
test run without valgrind (exit code 0)
run test with valgrind...
[rohc_comp.c:155 rohc_alloc_compressor()] creating compressor
[rohc_comp.c:649 rohc_comp_set_wlsb_window_width()] width of W-LSB sliding window set to 4
[rohc_comp.c:703 rohc_comp_set_periodic_refreshes()] IR timeout for context periodic refreshes set to 1700
[rohc_comp.c:705 rohc_comp_set_periodic_refreshes()] FO timeout for context periodic refreshes set to 700
[rohc_comp.c:1607 c_alloc_contexts()] enlarge the context array from 0 to 4 elements (MAX_CID = 15)
[rohc_decomp.c:1782 rohc_decomp_create_contexts()] room for 16 decompression contexts created
[rohc_decomp.c:420 rohc_decompress()] decompress the 5-byte packet #1
[rohc_decomp.c:1659 d_decode_feedback_first()] skip 0 byte(s) of padding
[rohc_decomp.c:1730 d_decode_feedback()] feedback present (header = 1 bytes, data = 4 bytes)
[rohc_comp.c:1210 c_deliver_feedback()] deliver 4 byte(s) of feedback to the right context
[rohc_comp.c:1246 c_deliver_feedback()] feedback size = 4
[ERROR] [rohc_comp.c:1273 c_deliver_feedback()] context not found (CID = 0)
[rohc_decomp.c:619 d_decode_header()] feedback-only packet, stop decompression
decompression is successful
[rohc_comp.c:271 rohc_free_compressor()] free contexts
[rohc_comp.c:275 rohc_free_compressor()] free feedback buffer
==28856== FILE DESCRIPTORS: 4 open at exit.
==28856== Open file descriptor 3: /tmp/valgrind_1000_5c118773c80ab59efd71d47fc421dd17_1363205367.xml
==28856== <inherited from parent>
==28856==
==28856== Open file descriptor 2: /dev/pts/20
==28856== <inherited from parent>
==28856==
==28856== Open file descriptor 1: /dev/pts/20
==28856== <inherited from parent>
==28856==
==28856== Open file descriptor 0: /dev/pts/20
==28856== <inherited from parent>
==28856==
==28856==
test run with valgrind without any error
-------------

The second part of the test should fail on your system. What's the output of Valgrind?

For the other failed tests, please run:
$ GREP=grep USE_VALGRIND=yes ./test/robustness/piggybacking_feedback/test_piggybacking_feedback.sh verbose verbose
$ AWK=gawk GREP=grep SED=sed ./statistics/generate_statistics.sh

Regards,
Didier

matthew (xcalibre0) said : #5

Looks like some configuration error in the scripting, maybe I did something wrong, or do I need to run the test as root?

GREP=grep USE_VALGRIND=yes ./test/functional/decompress_feedback_only/test_decompress_feedback_only.sh verbose verbose
run test without valgrind...
[rohc_comp.c:155 rohc_alloc_compressor()] creating compressor
[rohc_comp.c:649 rohc_comp_set_wlsb_window_width()] width of W-LSB sliding window set to 4
[rohc_comp.c:703 rohc_comp_set_periodic_refreshes()] IR timeout for context periodic refreshes set to 1700
[rohc_comp.c:705 rohc_comp_set_periodic_refreshes()] FO timeout for context periodic refreshes set to 700
[rohc_comp.c:1607 c_alloc_contexts()] enlarge the context array from 0 to 4 elements (MAX_CID = 15)
[rohc_decomp.c:1758 rohc_decomp_create_contexts()] room for 16 decompression contexts created
[rohc_decomp.c:420 rohc_decompress()] decompress the 5-byte packet #1
[rohc_decomp.c:1636 d_decode_feedback_first()] skip 0 byte(s) of padding
[rohc_decomp.c:1707 d_decode_feedback()] feedback present (header = 1 bytes, data = 4 bytes)
[rohc_comp.c:1210 c_deliver_feedback()] deliver 4 byte(s) of feedback to the right context
[rohc_comp.c:1246 c_deliver_feedback()] feedback size = 4
[ERROR] [rohc_comp.c:1273 c_deliver_feedback()] context not found (CID = 0)
[rohc_decomp.c:619 d_decode_header()] feedback-only packet, stop decompression
decompression is successful
[rohc_comp.c:271 rohc_free_compressor()] free contexts
[rohc_comp.c:275 rohc_free_compressor()] free feedback buffer
test run without valgrind (exit code 0)
run test with valgrind...
decompression is successful
./test/functional/decompress_feedback_only/test_decompress_feedback_only: line 179: cd: [rohc_comp.c:155 rohc_alloc_compressor()] creating compressor
[rohc_comp.c:649 rohc_comp_set_wlsb_window_width()] width of W-LSB sliding window set to 4
[rohc_comp.c:703 rohc_comp_set_periodic_refreshes()] IR timeout for context periodic refreshes set to 1700
[rohc_comp.c:705 rohc_comp_set_periodic_refreshes()] FO timeout for context periodic refreshes set to 700
[rohc_comp.c:1607 c_alloc_contexts()] enlarge the context array from 0 to 4 elements (MAX_CID = 15)
[rohc_decomp.c:1758 rohc_decomp_create_contexts()] room for 16 decompression contexts created
[rohc_decomp.c:420 rohc_decompress()] decompress the 5-byte packet #1
[rohc_decomp.c:1636 d_decode_feedback_first()] skip 0 byte(s) of padding
[rohc_decomp.c:1707 d_decode_feedback()] feedback present (header = 1 bytes, data = 4 bytes)
[rohc_comp.c:1210 c_deliver_feedback()] deliver 4 byte(s) of feedback to the right context
[rohc_comp.c:1246 c_deliver_feedback()] feedback size = 4
[ERROR] [rohc_comp.c:1273 c_deliver_feedback()] context not found (CID = 0)
[rohc_decomp.c:619 d_decode_header()] feedback-only packet, stop decompression
[rohc_comp.c:271 rohc_free_compressor()] free contexts
[rohc_comp.c:275 rohc_free_compressor()] free feedback buffer: File name too long
mkdir: cannot create directory `[rohc_comp.c:155 rohc_alloc_compressor()] creating compressor\n[rohc_comp.c:649 rohc_comp_set_wlsb_window_width()] width of W-LSB sliding window set to 4\n[rohc_comp.c:703 rohc_comp_set_periodic_refreshes()] IR timeout for context periodic refreshes set to 1700\n[rohc_comp.c:705 rohc_comp_set_periodic_refreshes()] FO timeout for context periodic refreshes set to 700\n[rohc_comp.c:1607 c_alloc_contexts()] enlarge the context array from 0 to 4 elements (MAX_CID = 15)\n[rohc_decomp.c:1758 rohc_decomp_create_contexts()] room for 16 decompression contexts created\n[rohc_decomp.c:420 rohc_decompress()] decompress the 5-byte packet #1\n[rohc_decomp.c:1636 d_decode_feedback_first()] skip 0 byte(s) of padding\n[rohc_decomp.c:1707 d_decode_feedback()] feedback present (header = 1 bytes, data = 4 bytes)\n[rohc_comp.c:1210 c_deliver_feedback()] deliver 4 byte(s) of feedback to the right context\n[rohc_comp.c:1246 c_deliver_feedback()] feedback size = 4\n[ERROR] [rohc_comp.c:1273 c_deliver_feedback()] context not found (CID = 0)\n[rohc_decomp.c:619 d_decode_header()] feedback-only packet, stop decompression\n[rohc_comp.c:271 rohc_free_compressor()] free contexts\n[rohc_comp.c:275 rohc_free_compressor()] free feedback buffer/.libs': File name too long
gcc: rohc_alloc_compressor()]: No such file or directory
gcc: creating: No such file or directory
gcc: compressor: No such file or directory
gcc: [rohc_comp.c:649: No such file or directory
gcc: rohc_comp_set_wlsb_window_width()]: No such file or directory
gcc: width: No such file or directory
gcc: of: No such file or directory
gcc: W-LSB: No such file or directory
gcc: sliding: No such file or directory
gcc: window: No such file or directory
gcc: set: No such file or directory
gcc: to: No such file or directory
gcc: 4: No such file or directory
gcc: [rohc_comp.c:703: No such file or directory
gcc: rohc_comp_set_periodic_refreshes()]: No such file or directory
gcc: IR: No such file or directory
gcc: timeout: No such file or directory
gcc: for: No such file or directory
gcc: context: No such file or directory
gcc: periodic: No such file or directory
gcc: refreshes: No such file or directory
gcc: set: No such file or directory
gcc: to: No such file or directory
gcc: 1700: No such file or directory
gcc: [rohc_comp.c:705: No such file or directory
gcc: rohc_comp_set_periodic_refreshes()]: No such file or directory
gcc: FO: No such file or directory
gcc: timeout: No such file or directory
gcc: for: No such file or directory
gcc: context: No such file or directory
gcc: periodic: No such file or directory
gcc: refreshes: No such file or directory
gcc: set: No such file or directory
gcc: to: No such file or directory
gcc: 700: No such file or directory
gcc: [rohc_comp.c:1607: No such file or directory
gcc: c_alloc_contexts()]: No such file or directory
gcc: enlarge: No such file or directory
gcc: the: No such file or directory
gcc: context: No such file or directory
gcc: array: No such file or directory
gcc: from: No such file or directory
gcc: 0: No such file or directory
gcc: to: No such file or directory
gcc: 4: No such file or directory
gcc: elements: No such file or directory
gcc: (MAX_CID: No such file or directory
gcc: =: No such file or directory
gcc: 15): No such file or directory
gcc: [rohc_decomp.c:1758: No such file or directory
gcc: rohc_decomp_create_contexts()]: No such file or directory
gcc: room: No such file or directory
gcc: for: No such file or directory
gcc: 16: No such file or directory
gcc: decompression: No such file or directory
gcc: contexts: No such file or directory
gcc: created: No such file or directory
gcc: [rohc_decomp.c:420: No such file or directory
gcc: rohc_decompress()]: No such file or directory
gcc: decompress: No such file or directory
gcc: the: No such file or directory
gcc: 5-byte: No such file or directory
gcc: packet: No such file or directory
gcc: #1: No such file or directory
gcc: [rohc_decomp.c:1636: No such file or directory
gcc: d_decode_feedback_first()]: No such file or directory
gcc: skip: No such file or directory
gcc: 0: No such file or directory
gcc: byte(s): No such file or directory
gcc: of: No such file or directory
gcc: padding: No such file or directory
gcc: [rohc_decomp.c:1707: No such file or directory
gcc: d_decode_feedback()]: No such file or directory
gcc: feedback: No such file or directory
gcc: present: No such file or directory
gcc: (header: No such file or directory
gcc: =: No such file or directory
gcc: 1: No such file or directory
gcc: bytes,: No such file or directory
gcc: data: No such file or directory
gcc: =: No such file or directory
gcc: 4: No such file or directory
gcc: bytes): No such file or directory
gcc: [rohc_comp.c:1210: No such file or directory
gcc: c_deliver_feedback()]: No such file or directory
gcc: deliver: No such file or directory
gcc: 4: No such file or directory
gcc: byte(s): No such file or directory
gcc: of: No such file or directory
gcc: feedback: No such file or directory
gcc: to: No such file or directory
gcc: the: No such file or directory
gcc: right: No such file or directory
gcc: context: No such file or directory
gcc: [rohc_comp.c:1246: No such file or directory
gcc: c_deliver_feedback()]: No such file or directory
gcc: feedback: No such file or directory
gcc: size: No such file or directory
gcc: =: No such file or directory
gcc: 4: No such file or directory
gcc: [ERROR]: No such file or directory
gcc: [rohc_comp.c:1273: No such file or directory
gcc: c_deliver_feedback()]: No such file or directory
gcc: context: No such file or directory
gcc: not: No such file or directory
gcc: found: No such file or directory
gcc: (CID: No such file or directory
gcc: =: No such file or directory
gcc: 0): No such file or directory
gcc: [rohc_decomp.c:619: No such file or directory
gcc: d_decode_header()]: No such file or directory
gcc: feedback-only: No such file or directory
gcc: packet,: No such file or directory
gcc: stop: No such file or directory
gcc: decompression: No such file or directory
gcc: [rohc_comp.c:271: No such file or directory
gcc: rohc_free_compressor()]: No such file or directory
gcc: free: No such file or directory
gcc: contexts: No such file or directory
gcc: [rohc_comp.c:275: No such file or directory
gcc: rohc_free_compressor()]: No such file or directory
gcc: free: No such file or directory
gcc: feedback: No such file or directory
gcc: buffer/.libs/28621-lt-test_decompress_feedback_only: No such file or directorynrm: cannot remove `[rohc_comp.c:155 rohc_alloc_compressor()] creating compressor\n[rohc_comp.c:649 rohc_comp_set_wlsb_window_width()] width of W-LSB sliding window set to 4\n[rohc_comp.c:703 rohc_comp_set_periodic_refreshes()] IR timeout for context periodic refreshes set to 1700\n[rohc_comp.c:705 rohc_comp_set_periodic_refreshes()] FO timeout for context periodic refreshes set to 700\n[rohc_comp.c:1607 c_alloc_contexts()] enlarge the context array from 0 to 4 elements (MAX_CID = 15)\n[rohc_decomp.c:1758 rohc_decomp_create_contexts()] room for 16 decompression contexts created\n[rohc_decomp.c:420 rohc_decompress()] decompress the 5-byte packet #1\n[rohc_decomp.c:1636 d_decode_feedback_first()] skip 0 byte(s) of padding\n[rohc_decomp.c:1707 d_decode_feedback()] feedback present (header = 1 bytes, data = 4 bytes)\n[rohc_comp.c:1210 c_deliver_feedback()] deliver 4 byte(s) of feedback to the right context\n[rohc_comp.c:1246 c_deliver_feedback()] feedback size = 4\n[ERROR] [rohc_comp.c:1273 c_deliver_feedback()] context not found (CID = 0)\n[rohc_decomp.c:619 d_decode_header()] feedback-only packet, stop decompression\n[rohc_comp.c:271 rohc_free_compressor()] free contexts\n[rohc_comp.c:275 rohc_free_compressor()] free feedback buffer/.libs/28621-lt-test_decompress_feedback_only': File name too long
test failed inside valgrind (exit code 1)
grep: /tmp/valgrind_105710_5c118773c80ab59efd71d47fc421dd17_1363269993.xml: No such file or directory
XSL transformation failed:
command: /usr/bin/xsltproc "./test/functional/decompress_feedback_only/../../valgrind.xsl" "/tmp/valgrind_105710_5c118773c80ab59efd71d47fc421dd17_1363269993.xml.filtered"
/tmp/valgrind_105710_5c118773c80ab59efd71d47fc421dd17_1363269993.xml.filtered:1: parser error : StartTag: invalid element name
</valgrindoutput>
 ^
/tmp/valgrind_105710_5c118773c80ab59efd71d47fc421dd17_1363269993.xml.filtered:1: parser error : Extra content at the end of the document
</valgrindoutput>
 ^
unable to parse /tmp/valgrind_105710_5c118773c80ab59efd71d47fc421dd17_1363269993.xml.filtered

> Looks like some configuration error in the scripting, maybe
> I did something wrong, or do I need to run the test as root?

No need to run the script as root. The libtool shell script
./test/functional/decompress_feedback_only/test_decompress_feedback_only
seems to have a problem.

Please try again to run the test after some cleaning up:
  $ make clean all
  $ make -C ./test/functional/decompress_feedback_only/ check

If it changes nothing, please give me the output of the following commands:
  $ echo $SHELL
  $ $SHELL --version
  $ file ./test/functional/decompress_feedback_only/test_decompress_feedback_only
  $ libtool --version

Last, does the test pass with static lib? To test:
  $ ./configure <options> --disable-shared --enable-static
  $ make clean all
  $ make -C ./test/functional/decompress_feedback_only/ check

Regards,
Didier

Another test for you: what's the output of the following commands?

  $ ./test/functional/decompress_feedback_only/test_decompress_feedback_only

  $ libtool --mode=execute \
      valgrind -q --tool=memcheck \
      --trace-children=yes --track-fds=yes --leak-check=full \
      --show-reachable=yes --malloc-fill=0xaa --free-fill=0x55 \
      --xml=yes --xml-file=/tmp/valgrind.log \
      ./test/functional/decompress_feedback_only/test_decompress_feedback_only

matthew (xcalibre0) said : #8

I just moved to a modern version of Linux and it solved the issue :D

OK.

Regards,
Didier