mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-28 15:13:55 +08:00
selftests: sync: differentiate between sync unsupported and access errors
Sync test doesn't differentiate between sync unsupported and test run by non-root user and treats both as unsupported cases. Fix it to add handling for these two different scenarios. Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.com>
This commit is contained in:
parent
97e4936851
commit
f6c44bbb79
@ -31,6 +31,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/wait.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "synctest.h"
|
||||
|
||||
@ -56,18 +57,32 @@ static int run_test(int (*test)(void), char *name)
|
||||
static int sync_api_supported(void)
|
||||
{
|
||||
struct stat sbuf;
|
||||
int ret;
|
||||
|
||||
ret = stat("/sys/kernel/debug/sync/sw_sync", &sbuf);
|
||||
if (!ret)
|
||||
return 0;
|
||||
|
||||
if (errno == ENOENT) {
|
||||
printf("SKIP: Sync framework not supported by kernel\n");
|
||||
exit(0);
|
||||
}
|
||||
if (errno == EACCES) {
|
||||
printf("SKIP: Run Sync test as root.\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
perror("stat");
|
||||
exit(ret);
|
||||
|
||||
return 0 == stat("/sys/kernel/debug/sync/sw_sync", &sbuf);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int err = 0;
|
||||
|
||||
if (!sync_api_supported()) {
|
||||
printf("SKIP: Sync framework not supported by kernel\n");
|
||||
if (!sync_api_supported())
|
||||
return 0;
|
||||
}
|
||||
|
||||
printf("[RUN]\tTesting sync framework\n");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user