tests using jq (traceinfo) should be skipped if it isn't available

Open Beginner friendly
#4,096 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
76/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
shell
Domain
testing-qa

Research direction

Start by reading src/test/traceinfo.run and rerunning the traceinfo and traceinfo-no-syscallbuf tests with jq unavailable. Check how these tests are registered with CTest, then make the tests skip when jq is absent rather than fail; verify they still run successfully when jq is installed.

Written by the indexing model from the issue text.

Description

home/install/rr/build$ nice ctest -VV -j$(nproc) --rerun-failed 
UpdateCTestConfiguration  from :/home/install/rr/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :/home/install/rr/build/DartConfiguration.tcl
Test project /home/install/rr/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1583
    Start 1583: traceinfo

1583: Test command: /usr/bin/bash "source_dir/src/test/traceinfo.run" "traceinfo" "" "bin_dir" "120"
1583: Working Directory: /home/install/rr/build
1583: Test timeout computed to be: 10000000
test 1584
    Start 1584: traceinfo-no-syscallbuf

1584: Test command: /usr/bin/bash "source_dir/src/test/traceinfo.run" "traceinfo" "-n" "bin_dir" "120"
1584: Working Directory: /home/install/rr/build
1584: Test timeout computed to be: 10000000
1584: source_dir/src/test/traceinfo.run: line 4: jq: command not found
1584: Test 'traceinfo' FAILED: invalid JSON
1583: source_dir/src/test/traceinfo.run: line 4: jq: command not found
1583: Test 'traceinfo' FAILED: invalid JSON
1584: Test traceinfo failed, leaving behind /tmp/rr-test-traceinfo-dMANwviZD
1584: To replay the failed test, run
1584:   _RR_TRACE_DIR=/tmp/rr-test-traceinfo-dMANwviZD rr replay
1/2 Test #1584: traceinfo-no-syscallbuf ..........***Failed  Error regular expression found in output. Regex=[FAILED]  0.06 sec
1583: Test traceinfo failed, leaving behind /tmp/rr-test-traceinfo-Y9iVqzCOW
1583: To replay the failed test, run
1583:   _RR_TRACE_DIR=/tmp/rr-test-traceinfo-Y9iVqzCOW rr replay
2/2 Test #1583: traceinfo ........................***Failed  Error regular expression found in output. Regex=[FAILED]  0.07 sec

0% tests passed, 2 tests failed out of 2

Total Test time (real) =   0.09 sec

The following tests FAILED:
	1583 - traceinfo (Failed)
	1584 - traceinfo-no-syscallbuf (Failed)
Errors while running CTest
Output from these tests are in: /home/install/rr/build/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.

... or tested by the build system during configuration and noted as a build/test dependency (the much bigger lldb is one).

Side note: tests running quick and fine on this machine once jq was installed from package manager.

Dominant language
C++
Stars
10.7k
Forks
662
Avg merge
2d 3h
Merged PRs (30d)
2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rr-debugger/rr

All issues in rr-debugger/rr

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.