| Add Makefile rules to: |
| install freeze_*.sh scripts someplace? |
| |
| Generate sample results |
| Post these appropriately along with patch adding tests to LTP |
| |
| Generate patch adding these tests to the controllers (cgroup) suite |
| NOTE: How to clearly represent dependency of containers test |
| suite on the controllers suite once this is done? |
| Do nothing? |
| |
| Write new test scripts using Cedric's fork_exec_loop.c test. |
| |
| Add assert_sample_proc_died to lib.sh and call it from freeze_{sleep|kill}_thaw.sh |
| |
| Change all of the: |
| echo "ERROR: ..." |
| echo "INFO: ..." |
| echo "WARNING: ..." |
| (NOTE: some of these give options to the echo cmd) |
| lines to use appropriate LTP API commands. This also entails replacing these |
| with appropriate LTP API usage: |
| |
| ./libcgroup_subsys:828: assert_cgroup_freezer_state "FROZEN" "ERROR: failed to freeze cgroup" |
| ./libcgroup_subsys:846: assert_cgroup_freezer_state "THAWED" "ERROR: Failed to thaw cgroup." |
| ./freezer/freeze_move_thaw.sh:22: "ERROR: cgroup freezer started in non-THAWED state" |
| ./freezer/freeze_cancel.sh:18: "ERROR: cgroup freezer started in non-THAWED state" |
| ./freezer/prereq.sh:10:tst_resm TINFO " It's ok if there's an ERROR before the next INFO." |
| ./freezer/prereq.sh:12:tst_resm TINFO " OK, resume worrying about ERRORS." |
| ./freezer/freeze_self_thaw.sh:31: "ERROR: cgroup freezer started in non-THAWED state" && { |
| ./freezer/freeze_thaw.sh:17: "ERROR: cgroup freezer started in non-THAWED state" |
| ./freezer/stop_freeze_thaw_cont.sh:18: "ERROR: cgroup freezer started in non-THAWED state" |
| ./freezer/freeze_write_freezing.sh:16: "ERROR: cgroup freezer started in non-THAWED state" |
| ./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)" |
| ./freezer/stop_freeze_sleep_thaw_cont.sh:18: "ERROR: cgroup freezer started in non-THAWED state" |
| ./freezer/TODO:3: echo "ERROR: ..." |
| ./freezer/freeze_sleep_thaw.sh:21: "ERROR: cgroup freezer started in non-THAWED state" |
| ./freezer/vfork_freeze.sh:10: echo "ERROR: Failed to build vfork test binary." 1>&2 |
| ./freezer/vfork_freeze.sh:36: "ERROR: cgroup freezer started in non-THAWED state" && { |
| ./freezer/freeze_kill_thaw.sh:19: "ERROR: cgroup freezer started in non-THAWED state" |
| ./freezer/vfork.c:37:perror("ERROR at " __FILE__ ":" str_expand(__LINE__) ": " s ) |
| ./freezer/write_freezing.sh:16: "ERROR: cgroup freezer started in non-THAWED state" |
| ./freezer/write_freezing.sh:19: assert_cgroup_freezer_state "THAWED" "ERROR: writing FREEZING to freezer.state should not change freezer state (expected IO error)" |
| Binary file ./freezer/vfork matches |
| ./testskel.c:53: exit(EXIT_FAILURE); |
| ./testskel.c:61: exit(EXIT_FAILURE); |
| ./freezer/vfork.c:58: exit(EXIT_FAILURE); |
| ./freezer/vfork.c:180: exit(EXIT_FAILURE); |
| ./freezer/vfork.c:186: exit(EXIT_FAILURE); |
| ./freezer/vfork.c:268: exit(EXIT_FAILURE); |
| ./freezer/vfork.c:287: exit(EXIT_FAILURE); |
| ./freezer/vfork.c:300: exit(EXIT_FAILURE); |
| ./freezer/vfork.c:306: exit(EXIT_FAILURE); |
| ./freezer/vfork.c:323: exit(EXIT_FAILURE); |
| ./freezer/vfork.c:327: exit(EXIT_FAILURE); |
| ./signal/prereq.sh:9:tst_resm TINFO " It's ok if there's an ERROR before the next INFO." |
| ./signal/stop_kill.sh:21: echo -n "INFO: Killing $sample_proc ..." |
| ./signal/TODO:4: echo "INFO: ..." |
| ./signal/kill.sh:20: echo -n "INFO: Killing $sample_proc ..." |
| ./signal/stop_sleep_cont.sh:26: echo -n "INFO: Waiting until sleep command should have finished ($sample_proc) ... " |
| ./libcgroup_subsys:57: tst_resm INFO "Failed to mount cgroup filesystem with ${cgroup_subsys} subsystem." |
| ./freezer/prereq.sh:10:tst_resm TINFO " It's ok if there's an ERROR before the next INFO." |
| ./freezer/stop_freeze_sleep_thaw_cont.sh:30: echo -n "INFO: Waiting until sleep command should have finished ($sample_proc) ... " |
| ./freezer/TODO:4: echo "INFO: ..." |
| ./freezer/freeze_sleep_thaw.sh:26: echo -n "INFO: Waiting until sleep command should have finished ($sample_proc) ... " |
| ./freezer/freeze_kill_thaw.sh:29: echo -n "INFO: Killing $sample_proc ..." |
| ./freezer/vfork.c:95: if (ptrace(PTRACE_GETSIGINFO, child, NULL, &info) == -1) { |
| ./freezer/vfork.c:202: if (ptrace(PTRACE_GETSIGINFO, gchild, NULL, &info) == -1) { |
| Port vfork.c and fork_exec_loop.c to use LTP APIs where appropriate? |
| |
| Write a test using two sample cgroups (A and B). Freeze A. Move tasks |
| from A to B. Make sure the state of the moved task is concistent |
| with the state of the B group. Make sure it's possible to unfreeze |
| the moved tasks in a "user-friendly" way. |
| |
| Write new test scripts using Cedric's fork_exec_loop.c test. |
| |
| freeze_cancel.sh isn't guaranteed to try to thaw the cgroup while the cgroup is |
| in the freezing state. It might be nice to find a way to guarantee that |
| otherwise we aren't guaranteed to test the ability to cancel freezing. |
| |
| freeze_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. |
| |
| Make use of TMPDIR and mktemp for tmp.txt in vfork_freeze.sh |