1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
/* SPDX-License-Identifier: LGPL-2.1-only */
/**
* libcgroup googletest for cgroup_parse_rules_options()
*
* Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
* Author: Tom Hromatka <tom.hromatka@oracle.com>
*/
#include "gtest/gtest.h"
#include "libcgroup-internal.h"
class ParseRulesOptionsTest : public ::testing::Test {
};
TEST_F(ParseRulesOptionsTest, RulesOptions_Ignore)
{
struct cgroup_rule rule;
char options[] = "ignore";
int ret;
rule.is_ignore = false;
ret = cgroup_parse_rules_options(options, &rule);
ASSERT_EQ(ret, 0);
ASSERT_EQ(rule.is_ignore, true);
}
TEST_F(ParseRulesOptionsTest, RulesOptions_IgnoreWithComma)
{
struct cgroup_rule rule;
char options[] = "ignore,";
int ret;
rule.is_ignore = false;
ret = cgroup_parse_rules_options(options, &rule);
ASSERT_EQ(ret, 0);
ASSERT_EQ(rule.is_ignore, true);
}
TEST_F(ParseRulesOptionsTest, RulesOptions_InvalidOption)
{
struct cgroup_rule rule;
char options[] = "ignoretypo";
int ret;
rule.is_ignore = false;
ret = cgroup_parse_rules_options(options, &rule);
ASSERT_EQ(ret, -EINVAL);
ASSERT_EQ(rule.is_ignore, false);
}
TEST_F(ParseRulesOptionsTest, RulesOptions_InvalidOption2)
{
struct cgroup_rule rule;
char options[] = "ignore,foobar";
int ret;
rule.is_ignore = false;
ret = cgroup_parse_rules_options(options, &rule);
ASSERT_EQ(ret, -EINVAL);
ASSERT_EQ(rule.is_ignore, true);
}
TEST_F(ParseRulesOptionsTest, RulesOptions_EmptyOptions)
{
struct cgroup_rule rule;
char options[] = "";
int ret;
rule.is_ignore = false;
ret = cgroup_parse_rules_options(options, &rule);
ASSERT_EQ(ret, -EINVAL);
ASSERT_EQ(rule.is_ignore, false);
}
TEST_F(ParseRulesOptionsTest, RulesOptions_NullOptions)
{
struct cgroup_rule rule;
char *options = NULL;
int ret;
rule.is_ignore = false;
ret = cgroup_parse_rules_options(options, &rule);
ASSERT_EQ(ret, -EINVAL);
ASSERT_EQ(rule.is_ignore, false);
}
|