1 ============ 1 ============ 2 LKMM SCRIPTS 2 LKMM SCRIPTS 3 ============ 3 ============ 4 4 5 5 6 These scripts are run from the tools/memory-mo 6 These scripts are run from the tools/memory-model directory. 7 7 8 checkalllitmus.sh 8 checkalllitmus.sh 9 9 10 Run all litmus tests in the litmus-tes 10 Run all litmus tests in the litmus-tests directory, checking 11 the results against the expected resul 11 the results against the expected results recorded in the 12 "Result:" comment lines. 12 "Result:" comment lines. 13 13 14 checkghlitmus.sh 14 checkghlitmus.sh 15 15 16 Run all litmus tests in the https://gi 16 Run all litmus tests in the https://github.com/paulmckrcu/litmus 17 archive that are C-language and that h 17 archive that are C-language and that have "Result:" comment lines 18 documenting expected results, comparin 18 documenting expected results, comparing the actual results to 19 those expected. 19 those expected. 20 20 21 checklitmushist.sh 21 checklitmushist.sh 22 22 23 Run all litmus tests having .litmus.ou 23 Run all litmus tests having .litmus.out files from previous 24 initlitmushist.sh or newlitmushist.sh 24 initlitmushist.sh or newlitmushist.sh runs, comparing the 25 herd7 output to that of the original r 25 herd7 output to that of the original runs. 26 26 27 checklitmus.sh 27 checklitmus.sh 28 28 29 Check a single litmus test against its 29 Check a single litmus test against its "Result:" expected result. 30 Not intended to for manual use. << 31 << 32 checktheselitmus.sh << 33 << 34 Check the specified list of litmus tes << 35 expected results. This takes optional << 36 followed by "--" followed by pathnames << 37 directory. << 38 30 39 cmplitmushist.sh 31 cmplitmushist.sh 40 32 41 Compare output from two different runs 33 Compare output from two different runs of the same litmus tests, 42 with the absolute pathnames of the tes 34 with the absolute pathnames of the tests to run provided one 43 name per line on standard input. Not 35 name per line on standard input. Not normally run manually, 44 provided instead for use by other scri 36 provided instead for use by other scripts. 45 37 46 initlitmushist.sh 38 initlitmushist.sh 47 39 48 Run all litmus tests having no more th 40 Run all litmus tests having no more than the specified number 49 of processes given a specified timeout 41 of processes given a specified timeout, recording the results 50 in .litmus.out files. 42 in .litmus.out files. 51 43 52 judgelitmus.sh 44 judgelitmus.sh 53 45 54 Given a .litmus file and its herd7 out !! 46 Given a .litmus file and its .litmus.out herd7 output, check the 55 against the .litmus file's "Result:" c !! 47 .litmus.out file against the .litmus file's "Result:" comment to 56 the test ran correctly. Not normally !! 48 judge whether the test ran correctly. Not normally run manually, 57 instead for use by other scripts. !! 49 provided instead for use by other scripts. 58 50 59 newlitmushist.sh 51 newlitmushist.sh 60 52 61 For all new or updated litmus tests ha 53 For all new or updated litmus tests having no more than the 62 specified number of processes given a 54 specified number of processes given a specified timeout, run 63 and record the results in .litmus.out 55 and record the results in .litmus.out files. 64 56 65 parseargs.sh 57 parseargs.sh 66 58 67 Parse command-line arguments. Not nor 59 Parse command-line arguments. Not normally run manually, 68 provided instead for use by other scri 60 provided instead for use by other scripts. 69 61 70 runlitmushist.sh 62 runlitmushist.sh 71 63 72 Run the litmus tests whose absolute pa 64 Run the litmus tests whose absolute pathnames are provided one 73 name per line on standard input. Not 65 name per line on standard input. Not normally run manually, 74 provided instead for use by other scri 66 provided instead for use by other scripts. 75 67 76 README 68 README 77 69 78 This file 70 This file 79 << 80 Testing a change to LKMM might go as follows: << 81 << 82 # Populate expected results without th << 83 # runs for about an hour on an 8-CPU x << 84 scripts/initlitmushist.sh --timeout 10 << 85 # Incorporate the change: << 86 git am -s -3 /path/to/patch # Or whate << 87 << 88 # Test the new version of LKMM as foll << 89 << 90 # Runs in seconds, good smoke test: << 91 scripts/checkalllitmus.sh << 92 << 93 # Compares results to those produced b << 94 # and runs for about an hour on an 8-C << 95 scripts/checklitmushist.sh --timeout 1 << 96 << 97 # Checks results against Result tags, << 98 scripts/checkghlitmus.sh --timeout 10m << 99 << 100 The checkghlitmus.sh should not report errors << 101 checklitmushist.sh script did not also report << 102 this check is nevertheless valuable because it << 103 original version of LKMM. Note however, that << 104 an error in the original LKMM version that is << 105 be reported both as a mismatch by checklitmush << 106 by checkghlitmus.sh. One exception to this ru << 107 test fails completely on the original version << 108 new version. In this case, checklitmushist.sh << 109 and checkghlitmus.sh will report success. Thi << 110 to LKMM introduces a new primitive for which l <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.