brintos

brintos / linux-shallow public Read only

0
0
Text · 3.6 KiB · fb39bd0 Raw
111 lines · plain
1			============2			LKMM SCRIPTS3			============4 5 6These scripts are run from the tools/memory-model directory.7 8checkalllitmus.sh9 10	Run all litmus tests in the litmus-tests directory, checking11	the results against the expected results recorded in the12	"Result:" comment lines.13 14checkghlitmus.sh15 16	Run all litmus tests in the https://github.com/paulmckrcu/litmus17	archive that are C-language and that have "Result:" comment lines18	documenting expected results, comparing the actual results to19	those expected.20 21checklitmushist.sh22 23	Run all litmus tests having .litmus.out files from previous24	initlitmushist.sh or newlitmushist.sh runs, comparing the25	herd7 output to that of the original runs.26 27checklitmus.sh28 29	Check a single litmus test against its "Result:" expected result.30	Not intended to for manual use.31 32checktheselitmus.sh33 34	Check the specified list of litmus tests against their "Result:"35	expected results.  This takes optional parseargs.sh arguments,36	followed by "--" followed by pathnames starting from the current37	directory.38 39cmplitmushist.sh40 41	Compare output from two different runs of the same litmus tests,42	with the absolute pathnames of the tests to run provided one43	name per line on standard input.  Not normally run manually,44	provided instead for use by other scripts.45 46initlitmushist.sh47 48	Run all litmus tests having no more than the specified number49	of processes given a specified timeout, recording the results50	in .litmus.out files.51 52judgelitmus.sh53 54	Given a .litmus file and its herd7 output, check the output file55	against the .litmus file's "Result:" comment to judge whether56	the test ran correctly.  Not normally run manually, provided57	instead for use by other scripts.58 59newlitmushist.sh60 61	For all new or updated litmus tests having no more than the62	specified number of processes given a specified timeout, run63	and record the results in .litmus.out files.64 65parseargs.sh66 67	Parse command-line arguments.  Not normally run manually,68	provided instead for use by other scripts.69 70runlitmushist.sh71 72	Run the litmus tests whose absolute pathnames are provided one73	name per line on standard input.  Not normally run manually,74	provided instead for use by other scripts.75 76README77 78	This file79 80Testing a change to LKMM might go as follows:81 82	# Populate expected results without that change, and83	# runs for about an hour on an 8-CPU x86 system:84	scripts/initlitmushist.sh --timeout 10m --procs 1085	# Incorporate the change:86	git am -s -3 /path/to/patch # Or whatever it takes.87 88	# Test the new version of LKMM as follows...89 90	# Runs in seconds, good smoke test:91	scripts/checkalllitmus.sh92 93	# Compares results to those produced by initlitmushist.sh,94	# and runs for about an hour on an 8-CPU x86 system:95	scripts/checklitmushist.sh --timeout 10m --procs 1096 97	# Checks results against Result tags, runs in minutes:98	scripts/checkghlitmus.sh --timeout 10m --procs 1099 100The checkghlitmus.sh should not report errors in cases where the101checklitmushist.sh script did not also report a change.  However,102this check is nevertheless valuable because it can find errors in the103original version of LKMM.  Note however, that given the above procedure,104an error in the original LKMM version that is fixed by the patch will105be reported both as a mismatch by checklitmushist.sh and as an error106by checkghlitmus.sh.  One exception to this rule of thumb is when the107test fails completely on the original version of LKMM and passes on the108new version.  In this case, checklitmushist.sh will report a mismatch109and checkghlitmus.sh will report success.  This happens when the change110to LKMM introduces a new primitive for which litmus tests already existed.111