Changeset 11064 in ntrip
- Timestamp:
- Oct 2, 2026, 1:53:41 PM (4 hours ago)
- File:
-
- 1 edited
-
trunk/BNC/src/bnchelp.html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bnchelp.html
r11061 r11064 97 97 1.6 <a href="#introConf">Configuration</a><br> 98 98 1.6.1 <a href="#introExamples">Examples</a><br> 99 1.6.2 <a href="#introTests">Regression Test Suite</a><br> 99 100 1.7 <a href="#introLimit">Limitations</a><br> 100 101 1.8 <a href="#introLBack">Looking Back</a><br><br> … … 2306 2307 </li> 2307 2308 </ol> 2309 </p> 2310 2311 <p> 2312 <h4 id="introTests">1.6.2 Regression Test Suite</h4> 2313 </p> 2314 <p> 2315 The source code distribution contains in directory 'tests' a regression test suite which is based on the 2316 configuration examples described above. It runs BNC headless ('--nw') on fixed input data and compares the 2317 output files with stored reference outputs. Hence, it shows whether a modification of the source code changes 2318 BNC's results - intended or not. No network access is needed: real-time examples are tested by replaying short 2319 raw captures of real streams ('--file' option, see section 'Raw Output File'), uploads are received by a local 2320 fake Ntrip caster. The test suite requires Python 3; it is intended for developers and is not needed to operate 2321 BNC. 2322 </p> 2323 <p> 2324 <b>Usage</b><br> 2325 Compile BNC first, the test suite uses the program './bnc' in the BNC root directory. Then call from that 2326 directory: 2327 </p> 2328 <pre> 2329 tests/run_tests.py # run all test cases in parallel 2330 tests/run_tests.py ssr_ rinex_qc # run only cases whose name contains one of the patterns 2331 tests/run_tests.py --list # list all cases with a short description 2332 tests/run_tests.py -j 4 # number of cases run in parallel (default: number of CPUs) 2333 tests/run_tests.py --bnc /path/bnc # test another BNC binary 2334 tests/run_tests.py --update NAME # accept the current outputs of case NAME as new reference 2335 </pre> 2336 <p> 2337 Each case is reported as PASS, FAIL or SKIP; the exit code is 1 if a case failed. For a failed case the first 2338 differing lines are printed. The full difference is saved in 'tests/work/<case>/<output>.diff' and 2339 the exact BNC command line in 'tests/work/<case>/command.txt', so that the run can be repeated by hand. 2340 Each case runs in its own directory 'tests/work/<case>' which contains a link 'Input' to 2341 'Example_Configs/Input' and an empty directory 'Output'. Thus the example configurations are used unchanged and 2342 nothing is written into 'Example_Configs'. 2343 </p> 2344 <p> 2345 Before comparing, contents that change with each run or BNC version are removed: wall-clock time stamps of 2346 logfile lines, 'Start BNC' lines, the BNC version string, the RINEX header line 'PGM / RUN BY / DATE' and the 2347 'Run by' and 'Date' lines of QC logfiles. Replays in batch mode are reproducible from run to run, including PPP 2348 with ambiguity resolution; hence most outputs are compared exactly. 2349 </p> 2350 <p> 2351 <b>Test cases</b><br> 2352 The test cases cover: 2353 </p> 2354 <ul> 2355 <li>File-based examples (RINEX concatenation, RINEX QC, RINEX editing with elevation mask, SP3 comparison, PPP 2356 in post-processing mode and with plots), partly also as command line variants.</li> 2357 <li>Stream replays of real-time examples: RINEX observation and navigation files, Feed Engine, SP3/Clock RINEX 2358 files from broadcast corrections (also Galileo HAS).</li> 2359 <li>Real-time PPP: float, Quick-Start, ambiguity resolution with CNES and WHU corrections, two stations, Galileo 2360 HAS.</li> 2361 <li>Combination of broadcast corrections, also with PPP using the combined corrections ('INTERNAL').</li> 2362 <li>Upload of broadcast corrections (encoded as IGS-SSR), of broadcast ephemerides and of raw streams to a local 2363 fake caster; the received streams are decoded again.</li> 2364 <li>Decoding of SSR streams in IGS-SSR and RTCM-SSR format; besides the decoded corrections files the decoder 2365 trace on stderr is compared, if BNC is compiled with debug option 'BNC_DEBUG_SSR'.</li> 2366 </ul> 2367 <p> 2368 <b>Accepting changes and adding cases</b><br> 2369 If a modification changes the results intentionally, the reference outputs of the affected cases are updated 2370 with option '--update'. Check the differences carefully before: a reference output records what BNC does, not 2371 what is correct. A new case is a directory 'tests/cases/<name>' with a file 'case.json' (configuration 2372 file, raw capture, additional command line options, expected exit code and output files to compare; the format 2373 is documented in the header of 'run_tests.py') and the reference outputs in sub-directory 'expected'. Short raw 2374 captures for replay cases can be prepared with the tool 'tests/tools/bncraw.py': 2375 </p> 2376 <pre> 2377 tests/tools/bncraw.py info capture.raw # streams, time span and RTCM3 message types 2378 tests/tools/bncraw.py slice capture.raw tests/data/new.raw --stations SSRA00CNE1,BCEP00BKG0 \ 2379 --start 2026-09-30T14:00:00 --end 2026-09-30T14:03:00 2380 tests/run_tests.py --update new 2381 </pre> 2382 <p> 2383 Raw captures are recorded by BNC itself with option 'Raw Output File'. Further details are given in 2384 'tests/README.md'. 2308 2385 </p> 2309 2386
Note:
See TracChangeset
for help on using the changeset viewer.
