mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-23 02:05:57 +01:00
infinite_loop.c: document better, allow 0 magic value to not print
Enable test by passing arguments to the test to limit loops. gem5 arm LSE: still skipped, but add a link to the master patch that was merged.
This commit is contained in:
@@ -474,21 +474,16 @@ path_properties_tuples = (
|
||||
'baremetal': True,
|
||||
},
|
||||
{
|
||||
'abort.c': {
|
||||
'signal_received': signal.Signals.SIGABRT,
|
||||
},
|
||||
'assert_fail.c': {
|
||||
'signal_received': signal.Signals.SIGABRT,
|
||||
},
|
||||
'smash_stack.c': {
|
||||
'skip_run_unclassified': True,
|
||||
},
|
||||
'abort.c': {'signal_received': signal.Signals.SIGABRT},
|
||||
'assert_fail.c': {'signal_received': signal.Signals.SIGABRT},
|
||||
# This has complex failure modes, too hard to assert.
|
||||
'smash_stack.c': {'skip_run_unclassified': True},
|
||||
'exit1.c': {'exit_status': 1},
|
||||
'exit2.c': {'exit_status': 2},
|
||||
'false.c': {'exit_status': 1},
|
||||
'file_write_read.c': {'baremetal': False},
|
||||
'getchar.c': {'interactive': True},
|
||||
'infinite_loop.c': {'more_than_1s': True},
|
||||
'infinite_loop.c': {'test_run_args': {'userland_args': '1 10'}},
|
||||
'malloc_max.c': {'disrupts_system': True},
|
||||
'return1.c': {'exit_status': 1},
|
||||
'return2.c': {'exit_status': 2},
|
||||
@@ -500,6 +495,9 @@ path_properties_tuples = (
|
||||
'atomic.cpp': {
|
||||
'test_run_args': {'cpus': 3},
|
||||
# LDADD from LSE
|
||||
# https://cirosantilli.com/linux-kernel-module-cheat#arm-lse
|
||||
# Implemented on master:
|
||||
# https://gem5-review.googlesource.com/c/public/gem5/+/19812
|
||||
'gem5_unimplemented_instruction': True,
|
||||
},
|
||||
'count.cpp': {'more_than_1s': True},
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
/* https://cirosantilli.com/linux-kernel-module-cheat#c
|
||||
*
|
||||
* Loop infinitely. Print an integer whenever a period is reached:
|
||||
* Loop and print an integer whenever a period is reached:
|
||||
*
|
||||
* ....
|
||||
* ./infinite_loop [period]
|
||||
* ./infinite_loop [period=100000000 [max=0]]
|
||||
* ....
|
||||
*
|
||||
* * period: period for printing integers to stdout
|
||||
* 0 means disable printing.
|
||||
* * max: Stop counting when max is reached.
|
||||
* 0 means count to infinity.
|
||||
*/
|
||||
|
||||
#include <inttypes.h>
|
||||
@@ -30,7 +35,7 @@ int main(int argc, char **argv) {
|
||||
j = 0;
|
||||
while (1) {
|
||||
i++;
|
||||
if (i % period == 0) {
|
||||
if (period != 0 && i % period == 0) {
|
||||
printf("%ju\n", j);
|
||||
j++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user