cregit-Linux how code gets into the kernel

Release 4.17 lib/test-kstrtox.c

Directory: lib
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>


#define for_each_test(i, test)	\
	for (i = 0; i < ARRAY_SIZE(test); i++)


struct test_fail {
	
const char *str;
	
unsigned int base;
};


#define DEFINE_TEST_FAIL(test)	\
	const struct test_fail test[] __initconst


#define DECLARE_TEST_OK(type, test_type)	\
	test_type {                             \
                const char *str;                \
                unsigned int base;              \
                type expected_res;              \
        }


#define DEFINE_TEST_OK(type, test)	\
	const type test[] __initconst


#define TEST_FAIL(fn, type, fmt, test)					\
{                                                                       \
        unsigned int i;                                                 \
                                                                        \
        for_each_test(i, test) {                                        \
                const struct test_fail *t = &test[i];                   \
                type tmp;                                               \
                int rv;                                                 \
                                                                        \
                tmp = 0;                                                \
                rv = fn(t->str, t->base, &tmp);                         \
                if (rv >= 0) {                                          \
                        WARN(1, "str '%s', base %u, expected -E, got %d/" fmt "\n",     \
                                t->str, t->base, rv, tmp);              \
                        continue;                                       \
                }                                                       \
        }                                                               \
}


#define TEST_OK(fn, type, fmt, test)					\
{                                                                       \
        unsigned int i;                                                 \
                                                                        \
        for_each_test(i, test) {                                        \
                const typeof(test[0]) *t = &test[i];                    \
                type res;                                               \
                int rv;                                                 \
                                                                        \
                rv = fn(t->str, t->base, &res);                         \
                if (rv != 0) {                                          \
                        WARN(1, "str '%s', base %u, expected 0/" fmt ", got %d\n",      \
                                t->str, t->base, t->expected_res, rv);  \
                        continue;                                       \
                }                                                       \
                if (res != t->expected_res) {                           \
                        WARN(1, "str '%s', base %u, expected " fmt ", got " fmt "\n",   \
                                t->str, t->base, t->expected_res, res); \
                        continue;                                       \
                }                                                       \
        }                                                               \
}


static void __init test_kstrtoull_ok(void) { DECLARE_TEST_OK(unsigned long long, struct test_ull); static DEFINE_TEST_OK(struct test_ull, test_ull_ok) = { {"0", 10, 0ULL}, {"1", 10, 1ULL}, {"127", 10, 127ULL}, {"128", 10, 128ULL}, {"129", 10, 129ULL}, {"255", 10, 255ULL}, {"256", 10, 256ULL}, {"257", 10, 257ULL}, {"32767", 10, 32767ULL}, {"32768", 10, 32768ULL}, {"32769", 10, 32769ULL}, {"65535", 10, 65535ULL}, {"65536", 10, 65536ULL}, {"65537", 10, 65537ULL}, {"2147483647", 10, 2147483647ULL}, {"2147483648", 10, 2147483648ULL}, {"2147483649", 10, 2147483649ULL}, {"4294967295", 10, 4294967295ULL}, {"4294967296", 10, 4294967296ULL}, {"4294967297", 10, 4294967297ULL}, {"9223372036854775807", 10, 9223372036854775807ULL}, {"9223372036854775808", 10, 9223372036854775808ULL}, {"9223372036854775809", 10, 9223372036854775809ULL}, {"18446744073709551614", 10, 18446744073709551614ULL}, {"18446744073709551615", 10, 18446744073709551615ULL}, {"00", 8, 00ULL}, {"01", 8, 01ULL}, {"0177", 8, 0177ULL}, {"0200", 8, 0200ULL}, {"0201", 8, 0201ULL}, {"0377", 8, 0377ULL}, {"0400", 8, 0400ULL}, {"0401", 8, 0401ULL}, {"077777", 8, 077777ULL}, {"0100000", 8, 0100000ULL}, {"0100001", 8, 0100001ULL}, {"0177777", 8, 0177777ULL}, {"0200000", 8, 0200000ULL}, {"0200001", 8, 0200001ULL}, {"017777777777", 8, 017777777777ULL}, {"020000000000", 8, 020000000000ULL}, {"020000000001", 8, 020000000001ULL}, {"037777777777", 8, 037777777777ULL}, {"040000000000", 8, 040000000000ULL}, {"040000000001", 8, 040000000001ULL}, {"0777777777777777777777", 8, 0777777777777777777777ULL}, {"01000000000000000000000", 8, 01000000000000000000000ULL}, {"01000000000000000000001", 8, 01000000000000000000001ULL}, {"01777777777777777777776", 8, 01777777777777777777776ULL}, {"01777777777777777777777", 8, 01777777777777777777777ULL}, {"0x0", 16, 0x0ULL}, {"0x1", 16, 0x1ULL}, {"0x7f", 16, 0x7fULL}, {"0x80", 16, 0x80ULL}, {"0x81", 16, 0x81ULL}, {"0xff", 16, 0xffULL}, {"0x100", 16, 0x100ULL}, {"0x101", 16, 0x101ULL}, {"0x7fff", 16, 0x7fffULL}, {"0x8000", 16, 0x8000ULL}, {"0x8001", 16, 0x8001ULL}, {"0xffff", 16, 0xffffULL}, {"0x10000", 16, 0x10000ULL}, {"0x10001", 16, 0x10001ULL}, {"0x7fffffff", 16, 0x7fffffffULL}, {"0x80000000", 16, 0x80000000ULL}, {"0x80000001", 16, 0x80000001ULL}, {"0xffffffff", 16, 0xffffffffULL}, {"0x100000000", 16, 0x100000000ULL}, {"0x100000001", 16, 0x100000001ULL}, {"0x7fffffffffffffff", 16, 0x7fffffffffffffffULL}, {"0x8000000000000000", 16, 0x8000000000000000ULL}, {"0x8000000000000001", 16, 0x8000000000000001ULL}, {"0xfffffffffffffffe", 16, 0xfffffffffffffffeULL}, {"0xffffffffffffffff", 16, 0xffffffffffffffffULL}, {"0\n", 0, 0ULL}, }; TEST_OK(kstrtoull, unsigned long long, "%llu", test_ull_ok); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan646100.00%1100.00%
Total646100.00%1100.00%


static void __init test_kstrtoull_fail(void) { static DEFINE_TEST_FAIL(test_ull_fail) = { {"", 0}, {"", 8}, {"", 10}, {"", 16}, {"\n", 0}, {"\n", 8}, {"\n", 10}, {"\n", 16}, {"\n0", 0}, {"\n0", 8}, {"\n0", 10}, {"\n0", 16}, {"+", 0}, {"+", 8}, {"+", 10}, {"+", 16}, {"-", 0}, {"-", 8}, {"-", 10}, {"-", 16}, {"0x", 0}, {"0x", 16}, {"0X", 0}, {"0X", 16}, {"0 ", 0}, {"1+", 0}, {"1-", 0}, {" 2", 0}, /* base autodetection */ {"0x0z", 0}, {"0z", 0}, {"a", 0}, /* digit >= base */ {"2", 2}, {"8", 8}, {"a", 10}, {"A", 10}, {"g", 16}, {"G", 16}, /* overflow */ {"10000000000000000000000000000000000000000000000000000000000000000", 2}, {"2000000000000000000000", 8}, {"18446744073709551616", 10}, {"10000000000000000", 16}, /* negative */ {"-0", 0}, {"-0", 8}, {"-0", 10}, {"-0", 16}, {"-1", 0}, {"-1", 8}, {"-1", 10}, {"-1", 16}, /* sign is first character if any */ {"-+1", 0}, {"-+1", 8}, {"-+1", 10}, {"-+1", 16}, /* nothing after \n */ {"0\n0", 0}, {"0\n0", 8}, {"0\n0", 10}, {"0\n0", 16}, {"0\n+", 0}, {"0\n+", 8}, {"0\n+", 10}, {"0\n+", 16}, {"0\n-", 0}, {"0\n-", 8}, {"0\n-", 10}, {"0\n-", 16}, {"0\n ", 0}, {"0\n ", 8}, {"0\n ", 10}, {"0\n ", 16}, }; TEST_FAIL(kstrtoull, unsigned long long, "%llu", test_ull_fail); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan448100.00%1100.00%
Total448100.00%1100.00%


static void __init test_kstrtoll_ok(void) { DECLARE_TEST_OK(long long, struct test_ll); static DEFINE_TEST_OK(struct test_ll, test_ll_ok) = { {"0", 10, 0LL}, {"1", 10, 1LL}, {"127", 10, 127LL}, {"128", 10, 128LL}, {"129", 10, 129LL}, {"255", 10, 255LL}, {"256", 10, 256LL}, {"257", 10, 257LL}, {"32767", 10, 32767LL}, {"32768", 10, 32768LL}, {"32769", 10, 32769LL}, {"65535", 10, 65535LL}, {"65536", 10, 65536LL}, {"65537", 10, 65537LL}, {"2147483647", 10, 2147483647LL}, {"2147483648", 10, 2147483648LL}, {"2147483649", 10, 2147483649LL}, {"4294967295", 10, 4294967295LL}, {"4294967296", 10, 4294967296LL}, {"4294967297", 10, 4294967297LL}, {"9223372036854775807", 10, 9223372036854775807LL}, {"-0", 10, 0LL}, {"-1", 10, -1LL}, {"-2", 10, -2LL}, {"-9223372036854775808", 10, LLONG_MIN}, }; TEST_OK(kstrtoll, long long, "%lld", test_ll_ok); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan240100.00%2100.00%
Total240100.00%2100.00%


static void __init test_kstrtoll_fail(void) { static DEFINE_TEST_FAIL(test_ll_fail) = { {"9223372036854775808", 10}, {"9223372036854775809", 10}, {"18446744073709551614", 10}, {"18446744073709551615", 10}, {"-9223372036854775809", 10}, {"-18446744073709551614", 10}, {"-18446744073709551615", 10}, /* sign is first character if any */ {"-+1", 0}, {"-+1", 8}, {"-+1", 10}, {"-+1", 16}, }; TEST_FAIL(kstrtoll, long long, "%lld", test_ll_fail); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan95100.00%1100.00%
Total95100.00%1100.00%


static void __init test_kstrtou64_ok(void) { DECLARE_TEST_OK(u64, struct test_u64); static DEFINE_TEST_OK(struct test_u64, test_u64_ok) = { {"0", 10, 0}, {"1", 10, 1}, {"126", 10, 126}, {"127", 10, 127}, {"128", 10, 128}, {"129", 10, 129}, {"254", 10, 254}, {"255", 10, 255}, {"256", 10, 256}, {"257", 10, 257}, {"32766", 10, 32766}, {"32767", 10, 32767}, {"32768", 10, 32768}, {"32769", 10, 32769}, {"65534", 10, 65534}, {"65535", 10, 65535}, {"65536", 10, 65536}, {"65537", 10, 65537}, {"2147483646", 10, 2147483646}, {"2147483647", 10, 2147483647}, {"2147483648", 10, 2147483648ULL}, {"2147483649", 10, 2147483649ULL}, {"4294967294", 10, 4294967294ULL}, {"4294967295", 10, 4294967295ULL}, {"4294967296", 10, 4294967296ULL}, {"4294967297", 10, 4294967297ULL}, {"9223372036854775806", 10, 9223372036854775806ULL}, {"9223372036854775807", 10, 9223372036854775807ULL}, {"9223372036854775808", 10, 9223372036854775808ULL}, {"9223372036854775809", 10, 9223372036854775809ULL}, {"18446744073709551614", 10, 18446744073709551614ULL}, {"18446744073709551615", 10, 18446744073709551615ULL}, }; TEST_OK(kstrtou64, u64, "%llu", test_u64_ok); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan295100.00%2100.00%
Total295100.00%2100.00%


static void __init test_kstrtou64_fail(void) { static DEFINE_TEST_FAIL(test_u64_fail) = { {"-2", 10}, {"-1", 10}, {"18446744073709551616", 10}, {"18446744073709551617", 10}, }; TEST_FAIL(kstrtou64, u64, "%llu", test_u64_fail); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan52100.00%1100.00%
Total52100.00%1100.00%


static void __init test_kstrtos64_ok(void) { DECLARE_TEST_OK(s64, struct test_s64); static DEFINE_TEST_OK(struct test_s64, test_s64_ok) = { {"-128", 10, -128}, {"-127", 10, -127}, {"-1", 10, -1}, {"0", 10, 0}, {"1", 10, 1}, {"126", 10, 126}, {"127", 10, 127}, {"128", 10, 128}, {"129", 10, 129}, {"254", 10, 254}, {"255", 10, 255}, {"256", 10, 256}, {"257", 10, 257}, {"32766", 10, 32766}, {"32767", 10, 32767}, {"32768", 10, 32768}, {"32769", 10, 32769}, {"65534", 10, 65534}, {"65535", 10, 65535}, {"65536", 10, 65536}, {"65537", 10, 65537}, {"2147483646", 10, 2147483646}, {"2147483647", 10, 2147483647}, {"2147483648", 10, 2147483648LL}, {"2147483649", 10, 2147483649LL}, {"4294967294", 10, 4294967294LL}, {"4294967295", 10, 4294967295LL}, {"4294967296", 10, 4294967296LL}, {"4294967297", 10, 4294967297LL}, {"9223372036854775806", 10, 9223372036854775806LL}, {"9223372036854775807", 10, 9223372036854775807LL}, }; TEST_OK(kstrtos64, s64, "%lld", test_s64_ok); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan290100.00%2100.00%
Total290100.00%2100.00%


static void __init test_kstrtos64_fail(void) { static DEFINE_TEST_FAIL(test_s64_fail) = { {"9223372036854775808", 10}, {"9223372036854775809", 10}, {"18446744073709551614", 10}, {"18446744073709551615", 10}, {"18446744073709551616", 10}, {"18446744073709551617", 10}, }; TEST_FAIL(kstrtos64, s64, "%lld", test_s64_fail); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan64100.00%1100.00%
Total64100.00%1100.00%


static void __init test_kstrtou32_ok(void) { DECLARE_TEST_OK(u32, struct test_u32); static DEFINE_TEST_OK(struct test_u32, test_u32_ok) = { {"0", 10, 0}, {"1", 10, 1}, {"126", 10, 126}, {"127", 10, 127}, {"128", 10, 128}, {"129", 10, 129}, {"254", 10, 254}, {"255", 10, 255}, {"256", 10, 256}, {"257", 10, 257}, {"32766", 10, 32766}, {"32767", 10, 32767}, {"32768", 10, 32768}, {"32769", 10, 32769}, {"65534", 10, 65534}, {"65535", 10, 65535}, {"65536", 10, 65536}, {"65537", 10, 65537}, {"2147483646", 10, 2147483646}, {"2147483647", 10, 2147483647}, {"2147483648", 10, 2147483648U}, {"2147483649", 10, 2147483649U}, {"4294967294", 10, 4294967294U}, {"4294967295", 10, 4294967295U}, }; TEST_OK(kstrtou32, u32, "%u", test_u32_ok); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan231100.00%2100.00%
Total231100.00%2100.00%


static void __init test_kstrtou32_fail(void) { static DEFINE_TEST_FAIL(test_u32_fail) = { {"-2", 10}, {"-1", 10}, {"4294967296", 10}, {"4294967297", 10}, {"9223372036854775806", 10}, {"9223372036854775807", 10}, {"9223372036854775808", 10}, {"9223372036854775809", 10}, {"18446744073709551614", 10}, {"18446744073709551615", 10}, {"18446744073709551616", 10}, {"18446744073709551617", 10}, }; TEST_FAIL(kstrtou32, u32, "%u", test_u32_fail); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan100100.00%1100.00%
Total100100.00%1100.00%


static void __init test_kstrtos32_ok(void) { DECLARE_TEST_OK(s32, struct test_s32); static DEFINE_TEST_OK(struct test_s32, test_s32_ok) = { {"-128", 10, -128}, {"-127", 10, -127}, {"-1", 10, -1}, {"0", 10, 0}, {"1", 10, 1}, {"126", 10, 126}, {"127", 10, 127}, {"128", 10, 128}, {"129", 10, 129}, {"254", 10, 254}, {"255", 10, 255}, {"256", 10, 256}, {"257", 10, 257}, {"32766", 10, 32766}, {"32767", 10, 32767}, {"32768", 10, 32768}, {"32769", 10, 32769}, {"65534", 10, 65534}, {"65535", 10, 65535}, {"65536", 10, 65536}, {"65537", 10, 65537}, {"2147483646", 10, 2147483646}, {"2147483647", 10, 2147483647}, }; TEST_OK(kstrtos32, s32, "%d", test_s32_ok); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan226100.00%1100.00%
Total226100.00%1100.00%


static void __init test_kstrtos32_fail(void) { static DEFINE_TEST_FAIL(test_s32_fail) = { {"2147483648", 10}, {"2147483649", 10}, {"4294967294", 10}, {"4294967295", 10}, {"4294967296", 10}, {"4294967297", 10}, {"9223372036854775806", 10}, {"9223372036854775807", 10}, {"9223372036854775808", 10}, {"9223372036854775809", 10}, {"18446744073709551614", 10}, {"18446744073709551615", 10}, {"18446744073709551616", 10}, {"18446744073709551617", 10}, }; TEST_FAIL(kstrtos32, s32, "%d", test_s32_fail); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan112100.00%1100.00%
Total112100.00%1100.00%


static void __init test_kstrtou16_ok(void) { DECLARE_TEST_OK(u16, struct test_u16); static DEFINE_TEST_OK(struct test_u16, test_u16_ok) = { {"0", 10, 0}, {"1", 10, 1}, {"126", 10, 126}, {"127", 10, 127}, {"128", 10, 128}, {"129", 10, 129}, {"254", 10, 254}, {"255", 10, 255}, {"256", 10, 256}, {"257", 10, 257}, {"32766", 10, 32766}, {"32767", 10, 32767}, {"32768", 10, 32768}, {"32769", 10, 32769}, {"65534", 10, 65534}, {"65535", 10, 65535}, }; TEST_OK(kstrtou16, u16, "%hu", test_u16_ok); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan167100.00%1100.00%
Total167100.00%1100.00%


static void __init test_kstrtou16_fail(void) { static DEFINE_TEST_FAIL(test_u16_fail) = { {"-2", 10}, {"-1", 10}, {"65536", 10}, {"65537", 10}, {"2147483646", 10}, {"2147483647", 10}, {"2147483648", 10}, {"2147483649", 10}, {"4294967294", 10}, {"4294967295", 10}, {"4294967296", 10}, {"4294967297", 10}, {"9223372036854775806", 10}, {"9223372036854775807", 10}, {"9223372036854775808", 10}, {"9223372036854775809", 10}, {"18446744073709551614", 10}, {"18446744073709551615", 10}, {"18446744073709551616", 10}, {"18446744073709551617", 10}, }; TEST_FAIL(kstrtou16, u16, "%hu", test_u16_fail); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan148100.00%1100.00%
Total148100.00%1100.00%


static void __init test_kstrtos16_ok(void) { DECLARE_TEST_OK(s16, struct test_s16); static DEFINE_TEST_OK(struct test_s16, test_s16_ok) = { {"-130", 10, -130}, {"-129", 10, -129}, {"-128", 10, -128}, {"-127", 10, -127}, {"-1", 10, -1}, {"0", 10, 0}, {"1", 10, 1}, {"126", 10, 126}, {"127", 10, 127}, {"128", 10, 128}, {"129", 10, 129}, {"254", 10, 254}, {"255", 10, 255}, {"256", 10, 256}, {"257", 10, 257}, {"32766", 10, 32766}, {"32767", 10, 32767}, }; TEST_OK(kstrtos16, s16, "%hd", test_s16_ok); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan180100.00%1100.00%
Total180100.00%1100.00%


static void __init test_kstrtos16_fail(void) { static DEFINE_TEST_FAIL(test_s16_fail) = { {"32768", 10}, {"32769", 10}, {"65534", 10}, {"65535", 10}, {"65536", 10}, {"65537", 10}, {"2147483646", 10}, {"2147483647", 10}, {"2147483648", 10}, {"2147483649", 10}, {"4294967294", 10}, {"4294967295", 10}, {"4294967296", 10}, {"4294967297", 10}, {"9223372036854775806", 10}, {"9223372036854775807", 10}, {"9223372036854775808", 10}, {"9223372036854775809", 10}, {"18446744073709551614", 10}, {"18446744073709551615", 10}, {"18446744073709551616", 10}, {"18446744073709551617", 10}, }; TEST_FAIL(kstrtos16, s16, "%hd", test_s16_fail); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan160100.00%1100.00%
Total160100.00%1100.00%


static void __init test_kstrtou8_ok(void) { DECLARE_TEST_OK(u8, struct test_u8); static DEFINE_TEST_OK(struct test_u8, test_u8_ok) = { {"0", 10, 0}, {"1", 10, 1}, {"126", 10, 126}, {"127", 10, 127}, {"128", 10, 128}, {"129", 10, 129}, {"254", 10, 254}, {"255", 10, 255}, }; TEST_OK(kstrtou8, u8, "%hhu", test_u8_ok); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan103100.00%1100.00%
Total103100.00%1100.00%


static void __init test_kstrtou8_fail(void) { static DEFINE_TEST_FAIL(test_u8_fail) = { {"-2", 10}, {"-1", 10}, {"256", 10}, {"257", 10}, {"32766", 10}, {"32767", 10}, {"32768", 10}, {"32769", 10}, {"65534", 10}, {"65535", 10}, {"65536", 10}, {"65537", 10}, {"2147483646", 10}, {"2147483647", 10}, {"2147483648", 10}, {"2147483649", 10}, {"4294967294", 10}, {"4294967295", 10}, {"4294967296", 10}, {"4294967297", 10}, {"9223372036854775806", 10}, {"9223372036854775807", 10}, {"9223372036854775808", 10}, {"9223372036854775809", 10}, {"18446744073709551614", 10}, {"18446744073709551615", 10}, {"18446744073709551616", 10}, {"18446744073709551617", 10}, }; TEST_FAIL(kstrtou8, u8, "%hhu", test_u8_fail); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan196100.00%1100.00%
Total196100.00%1100.00%


static void __init test_kstrtos8_ok(void) { DECLARE_TEST_OK(s8, struct test_s8); static DEFINE_TEST_OK(struct test_s8, test_s8_ok) = { {"-128", 10, -128}, {"-127", 10, -127}, {"-1", 10, -1}, {"0", 10, 0}, {"1", 10, 1}, {"126", 10, 126}, {"127", 10, 127}, }; TEST_OK(kstrtos8, s8, "%hhd", test_s8_ok); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan98100.00%1100.00%
Total98100.00%1100.00%


static void __init test_kstrtos8_fail(void) { static DEFINE_TEST_FAIL(test_s8_fail) = { {"-130", 10}, {"-129", 10}, {"128", 10}, {"129", 10}, {"254", 10}, {"255", 10}, {"256", 10}, {"257", 10}, {"32766", 10}, {"32767", 10}, {"32768", 10}, {"32769", 10}, {"65534", 10}, {"65535", 10}, {"65536", 10}, {"65537", 10}, {"2147483646", 10}, {"2147483647", 10}, {"2147483648", 10}, {"2147483649", 10}, {"4294967294", 10}, {"4294967295", 10}, {"4294967296", 10}, {"4294967297", 10}, {"9223372036854775806", 10}, {"9223372036854775807", 10}, {"9223372036854775808", 10}, {"9223372036854775809", 10}, {"18446744073709551614", 10}, {"18446744073709551615", 10}, {"18446744073709551616", 10}, {"18446744073709551617", 10}, }; TEST_FAIL(kstrtos8, s8, "%hhd", test_s8_fail); }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan220100.00%1100.00%
Total220100.00%1100.00%


static int __init test_kstrtox_init(void) { test_kstrtoull_ok(); test_kstrtoull_fail(); test_kstrtoll_ok(); test_kstrtoll_fail(); test_kstrtou64_ok(); test_kstrtou64_fail(); test_kstrtos64_ok(); test_kstrtos64_fail(); test_kstrtou32_ok(); test_kstrtou32_fail(); test_kstrtos32_ok(); test_kstrtos32_fail(); test_kstrtou16_ok(); test_kstrtou16_fail(); test_kstrtos16_ok(); test_kstrtos16_fail(); test_kstrtou8_ok(); test_kstrtou8_fail(); test_kstrtos8_ok(); test_kstrtos8_fail(); return -EINVAL; }

Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan73100.00%1100.00%
Total73100.00%1100.00%

module_init(test_kstrtox_init); MODULE_LICENSE("Dual BSD/GPL");

Overall Contributors

PersonTokensPropCommitsCommitProp
Alexey Dobriyan424099.93%360.00%
Uwe Kleine-König20.05%120.00%
Fabian Frederick10.02%120.00%
Total4243100.00%5100.00%
Directory: lib
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.