TODO revision 5d8dc705df73c6e4056d8a05f98caa58096a3fe0
1Add Makefile rules to:
2	install freeze_*.sh scripts someplace?
3
4Generate sample results
5	Post these appropriately along with patch adding tests to LTP
6
7Generate patch adding these tests to the controllers (cgroup) suite
8	NOTE: How to clearly represent dependency of containers test
9		suite on the controllers suite once this is done?
10		Do nothing?
11
12Write new test scripts using Cedric's fork_exec_loop.c test.
13
14Add assert_sample_proc_died to lib.sh and call it from freeze_{sleep|kill}_thaw.sh
15
16Change all of the:
17	echo "ERROR: ..."
18	echo "INFO: ..."
19	echo "WARNING: ..."
20	(NOTE: some of these give options to the echo cmd)
21lines to use appropriate LTP API commands. This also entails replacing these
22with appropriate LTP API usage:
23
24./libcgroup_subsys:828:	assert_cgroup_freezer_state "FROZEN" "ERROR: failed to freeze cgroup"
25./libcgroup_subsys:846:	assert_cgroup_freezer_state "THAWED" "ERROR: Failed to thaw cgroup."
26./freezer/freeze_move_thaw.sh:22:			"ERROR: cgroup freezer started in non-THAWED state"
27./freezer/freeze_cancel.sh:18:			"ERROR: cgroup freezer started in non-THAWED state"
28./freezer/prereq.sh:10:tst_resm TINFO " It's ok if there's an ERROR before the next INFO."
29./freezer/prereq.sh:12:tst_resm TINFO " OK, resume worrying about ERRORS."
30./freezer/freeze_self_thaw.sh:31:		"ERROR: cgroup freezer started in non-THAWED state" && {
31./freezer/freeze_thaw.sh:17:			"ERROR: cgroup freezer started in non-THAWED state"
32./freezer/stop_freeze_thaw_cont.sh:18:			"ERROR: cgroup freezer started in non-THAWED state"
33./freezer/freeze_write_freezing.sh:16:			"ERROR: cgroup freezer started in non-THAWED state"
34./freezer/freeze_write_freezing.sh:21:	assert_cgroup_freezer_state "FROZEN" "ERROR: writing FREEZING to freezer.state should not change freezer state from FROZEN (expected IO error)"
35./freezer/stop_freeze_sleep_thaw_cont.sh:18:			"ERROR: cgroup freezer started in non-THAWED state"
36./freezer/TODO:3:		echo "ERROR: ..."
37./freezer/freeze_sleep_thaw.sh:21:			"ERROR: cgroup freezer started in non-THAWED state"
38./freezer/vfork_freeze.sh:10:	echo "ERROR: Failed to build vfork test binary." 1>&2
39./freezer/vfork_freeze.sh:36:		"ERROR: cgroup freezer started in non-THAWED state" && {
40./freezer/freeze_kill_thaw.sh:19:			"ERROR: cgroup freezer started in non-THAWED state"
41./freezer/vfork.c:37:perror("ERROR at " __FILE__ ":" str_expand(__LINE__) ": " s )
42./freezer/write_freezing.sh:16:			"ERROR: cgroup freezer started in non-THAWED state"
43./freezer/write_freezing.sh:19:	assert_cgroup_freezer_state "THAWED" "ERROR: writing FREEZING to freezer.state should not change freezer state (expected IO error)"
44Binary file ./freezer/vfork matches
45./testskel.c:53:		exit(EXIT_FAILURE);
46./testskel.c:61:			exit(EXIT_FAILURE);
47./freezer/vfork.c:58:			exit(EXIT_FAILURE);
48./freezer/vfork.c:180:				exit(EXIT_FAILURE);
49./freezer/vfork.c:186:			exit(EXIT_FAILURE);
50./freezer/vfork.c:268:			exit(EXIT_FAILURE);
51./freezer/vfork.c:287:			exit(EXIT_FAILURE);
52./freezer/vfork.c:300:		exit(EXIT_FAILURE);
53./freezer/vfork.c:306:		exit(EXIT_FAILURE);
54./freezer/vfork.c:323:			exit(EXIT_FAILURE);
55./freezer/vfork.c:327:			exit(EXIT_FAILURE);
56./signal/prereq.sh:9:tst_resm TINFO " It's ok if there's an ERROR before the next INFO."
57./signal/stop_kill.sh:21:	echo -n "INFO: Killing $sample_proc ..."
58./signal/TODO:4:		echo "INFO: ..."
59./signal/kill.sh:20:	echo -n "INFO: Killing $sample_proc ..."
60./signal/stop_sleep_cont.sh:26:	echo -n "INFO: Waiting until sleep command should have finished ($sample_proc) ... "
61./libcgroup_subsys:57:		tst_resm INFO "Failed to mount cgroup filesystem with ${cgroup_subsys} subsystem."
62./freezer/prereq.sh:10:tst_resm TINFO " It's ok if there's an ERROR before the next INFO."
63./freezer/stop_freeze_sleep_thaw_cont.sh:30:	echo -n "INFO: Waiting until sleep command should have finished ($sample_proc) ... "
64./freezer/TODO:4:		echo "INFO: ..."
65./freezer/freeze_sleep_thaw.sh:26:	echo -n "INFO: Waiting until sleep command should have finished ($sample_proc) ... "
66./freezer/freeze_kill_thaw.sh:29:	echo -n "INFO: Killing $sample_proc ..."
67./freezer/vfork.c:95:	if (ptrace(PTRACE_GETSIGINFO, child, NULL, &info) == -1) {
68./freezer/vfork.c:202:	if (ptrace(PTRACE_GETSIGINFO, gchild, NULL, &info) == -1) {
69	Port vfork.c and fork_exec_loop.c to use LTP APIs where appropriate?
70
71	Write a test using two sample cgroups (A and B). Freeze A. Move tasks
72		from A to B. Make sure the state of the moved task is concistent
73		with the state of the B group. Make sure it's possible to unfreeze
74		the moved tasks in a "user-friendly" way.
75
76Write new test scripts using Cedric's fork_exec_loop.c test.
77
78freeze_cancel.sh isn't guaranteed to try to thaw the cgroup while the cgroup is
79	in the freezing state. It might be nice to find a way to guarantee that
80	otherwise we aren't guaranteed to test the ability to cancel freezing.
81
82freeze_self_thaw.sh might have a race between starting 'exec sleep $sample_sleep' and killing the process. This would result in being unable to remove the "child" cgroup which in turn might cause subsequent tests to fail.
83
84Make use of TMPDIR and mktemp for tmp.txt in vfork_freeze.sh
85