Re: [PATCH v5 3/7] lib: Add support for max_kver to struct tst_test and tst_fs

Cyril Hrubis <[email protected]>
Newsgroups gmane.linux.ltp
Message-ID <[email protected]>
Hi!
> +/*
> + * Check for the maximal required kernel version.
> + *
> + * return: true if the kernel version is low enough, false otherwise.
> + */
> +static bool check_max_kver(const char *max_kver, const int brk_nosupp)
> +{
> +	char *msg;
> +	int dots, i, v1, v2, v3;
> +
> +	tst_parse_kver(max_kver, &v1, &v2, &v3);
> +
> +	for (i = 0, dots = 0; max_kver[i]; i++)
> +		dots += (max_kver[i] == '.');
> +
> +	/*
> +	 * For mainline kernel release without patch level (single dot e.g. "7.1")
> +	 * ignore v3 (the sublevel): 7.1.x is always ok.
> +	 * Do *not* ignore v3 on stable kernel release (2 dots, e.g. 7.1.5).
> +	 */
> +	if (tst_kvercmp(v1, v2, v3) > (dots == 1 ? 1023 : 0)) {

Uff, this is quite ugly. What exactly are we trying to do?


Also we are missing wiring for the shell test executor:

iff --git a/testcases/lib/tst_run_shell.c b/testcases/lib/tst_run_shell.c
index 2778fb6d5..263a319bc 100644
--- a/testcases/lib/tst_run_shell.c
+++ b/testcases/lib/tst_run_shell.c
@@ -57,6 +57,7 @@ enum test_attr_ids {
        DEV_MIN_SIZE,
        FILESYSTEMS,
        FORMAT_DEVICE,
+       MAX_KVER,
        MIN_CPUS,
        MIN_MEM_AVAIL,
        MIN_KVER,
@@ -91,6 +92,7 @@ static ujson_obj_attr test_attrs[] = {
        UJSON_OBJ_ATTR_IDX(DEV_MIN_SIZE, "dev_min_size", UJSON_INT),
        UJSON_OBJ_ATTR_IDX(FILESYSTEMS, "filesystems", UJSON_ARR),
        UJSON_OBJ_ATTR_IDX(FORMAT_DEVICE, "format_device", UJSON_BOOL),
+       UJSON_OBJ_ATTR_IDX(MAX_KVER, "max_kver", UJSON_STR),
        UJSON_OBJ_ATTR_IDX(MIN_CPUS, "min_cpus", UJSON_INT),
        UJSON_OBJ_ATTR_IDX(MIN_MEM_AVAIL, "min_mem_avail", UJSON_INT),
        UJSON_OBJ_ATTR_IDX(MIN_KVER, "min_kver", UJSON_STR),
@@ -462,6 +464,9 @@ static void parse_metadata(void)
                case FORMAT_DEVICE:
                        test.format_device = val.val_bool;
                break;
+               case MAX_KVER:
+                       test.max_kver = strdup(val.val_str);
+               break;
                case MIN_CPUS:
                        if (val.val_int <= 0)
                                ujson_err(&reader, "Minimal number of cpus must be > 0");



-- 
Cyril Hrubis
[email protected]

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.