• Zhangjin Wu's avatar
    selftests/nolibc: fix up kernel parameters support · c388c992
    Zhangjin Wu authored
    kernel parameters allow pass two types of strings, one type is like
    'noapic', another type is like 'panic=5', the first type is passed as
    arguments of the init program, the second type is passed as environment
    variables of the init program.
    
    when users pass kernel parameters like this:
    
        noapic NOLIBC_TEST=syscall
    
    our nolibc-test program will use the test setting from argv[1] and
    ignore the one from NOLIBC_TEST environment variable, and at last, it
    will print the following line and ignore the whole test setting.
    
        Ignoring unknown test name 'noapic'
    
    reversing the parsing order does solve the above issue:
    
        test = getenv("NOLIBC_TEST");
        if (test)
            test = argv[1];
    
    but it still doesn't work with such kernel parameters (without
    NOLIBC_TEST environment variable):
    
        noapic FOO=bar
    
    To support all of the potential kernel parameters, let's verify the test
    setting from both of argv[1] and NOLIBC_TEST environment variable.
    Reviewed-by: default avatarThomas Weißschuh <linux@weissschuh.net>
    Signed-off-by: default avatarZhangjin Wu <falcon@tinylab.org>
    Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
    c388c992
nolibc-test.c 38.2 KB