			============
			LKMM SCRIPTS
			============


These scripts are run from the tools/memory-model directory.

checkalllitmus.sh

	Run all litmus tests in the litmus-tests directory, checking
	the results against the expected results recorded in the
	"Result:" comment lines.

checkghlitmus.sh

	Run all litmus tests in the https://github.com/paulmckrcu/litmus
	archive that are C-language and that have "Result:" comment lines
	documenting expected results, comparing the actual results to
	those expected.

checklitmushist.sh

	Run all litmus tests having .litmus.out files from previous
	initlitmushist.sh or newlitmushist.sh runs, comparing the
	herd7 output to that of the original runs.

checklitmus.sh

	Check a single litmus test against its "Result:" expected result.

cmplitmushist.sh

	Compare output from two different runs of the same litmus tests,
	with the absolute pathnames of the tests to run provided one
	name per line on standard input.  Not normally run manually,
	provided instead for use by other scripts.

initlitmushist.sh

	Run all litmus tests having no more than the specified number
	of processes given a specified timeout, recording the results
	in .litmus.out files.

judgelitmus.sh

	Given a .litmus file and its .litmus.out herd7 output, check the
	.litmus.out file against the .litmus file's "Result:" comment to
	judge whether the test ran correctly.  Not normally run manually,
	provided instead for use by other scripts.

newlitmushist.sh

	For all new or updated litmus tests having no more than the
	specified number of processes given a specified timeout, run
	and record the results in .litmus.out files.

parseargs.sh

	Parse command-line arguments.  Not normally run manually,
	provided instead for use by other scripts.

runlitmushist.sh

	Run the litmus tests whose absolute pathnames are provided one
	name per line on standard input.  Not normally run manually,
	provided instead for use by other scripts.

README

	This file
