mirror of
https://github.com/FeralInteractive/gamemode.git
synced 2025-06-06 07:37:21 +02:00
Add a test for renicing multithreaded processes
This commit is contained in:
parent
87cfd9c5a6
commit
3ac49385dc
@ -677,6 +677,19 @@ static pid_t run_process_tree(int innactive, int active, testfunc func)
|
||||
return status;
|
||||
}
|
||||
|
||||
int test_renice(int expected, pid_t this)
|
||||
{
|
||||
int val = game_mode_get_renice(this);
|
||||
if (val != expected) {
|
||||
LOG_ERROR("nice value was incorrect for thread %d!\nExpected: %d, Was: %d\n",
|
||||
this,
|
||||
expected,
|
||||
val);
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int run_renice_tests(struct GameModeConfig *config)
|
||||
{
|
||||
/* read configuration "renice" (1..20) */
|
||||
@ -717,6 +730,13 @@ int run_renice_tests(struct GameModeConfig *config)
|
||||
ret = -1;
|
||||
}
|
||||
|
||||
/* Check multiprocess nice works as well */
|
||||
val = run_process_tree(0, (int)renice, test_renice);
|
||||
if (val != 0) {
|
||||
LOG_ERROR("Multithreaded renice tests failed!\n");
|
||||
ret = -1;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -858,9 +878,9 @@ static int game_mode_run_feature_tests(struct GameModeConfig *config)
|
||||
else if (renicestatus == 0)
|
||||
LOG_MSG("::: Passed\n");
|
||||
else {
|
||||
LOG_MSG("::: Failed!\n");
|
||||
LOG_MSG("::: Failed! (non-fatal, known issue with multithreaded programs)\n");
|
||||
// Renice should be expected to work, if set
|
||||
status = -1;
|
||||
status = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user