Add a unit test for parse_r_flag() in cgset.c. [----------] 1 test from CgsetParseRFlagTest [ RUN ] CgsetParseRFlagTest.EqualCharInValue [ OK ] CgsetParseRFlagTest.EqualCharInValue (0 ms) [----------] 1 test from CgsetParseRFlagTest (0 ms total)
Signed-off-by: Tom Hromatka <tom.hroma...@oracle.com> --- gunit/016-cgset_parse_r_flag.cpp | 52 ++++++++++++++++++++++++++++++++ gunit/Makefile.am | 7 +++-- 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 gunit/016-cgset_parse_r_flag.cpp diff --git a/gunit/016-cgset_parse_r_flag.cpp b/gunit/016-cgset_parse_r_flag.cpp new file mode 100644 index 000000000000..713535faf52e --- /dev/null +++ b/gunit/016-cgset_parse_r_flag.cpp @@ -0,0 +1,52 @@ +/** + * libcgroup googletest for parse_r_flag() in cgset + * + * Copyright (c) 2021 Oracle and/or its affiliates. + * Author: Tom Hromatka <tom.hroma...@oracle.com> + */ + +/* + * This library is free software; you can redistribute it and/or modify it + * under the terms of version 2.1 of the GNU Lesser General Public License as + * published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + * for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see <http://www.gnu.org/licenses>. + */ + +#include <ftw.h> + +#include "gtest/gtest.h" + +#include "libcgroup-internal.h" +#include "tools-common.h" + +static const char * const PARENT_DIR = "test016cgset/"; + +static const char * const NAME = "io.max"; +static const char * const VALUE = "\"8:16 wbps=1024\""; + +class CgsetParseRFlagTest : public ::testing::Test { +}; + +TEST_F(CgsetParseRFlagTest, EqualCharInValue) +{ + struct control_value name_value; + char name_value_str[4092]; + int ret; + + ret = snprintf(name_value_str, sizeof(name_value_str) -1, + "%s=%s", NAME, VALUE); + ASSERT_GT(ret, 0); + + ret = parse_r_flag("cgset", name_value_str, &name_value); + ASSERT_EQ(ret, 0); + + ASSERT_STREQ(name_value.name, NAME); + ASSERT_STREQ(name_value.value, VALUE); +} diff --git a/gunit/Makefile.am b/gunit/Makefile.am index 6eb8ffce6d1e..654002cd7496 100644 --- a/gunit/Makefile.am +++ b/gunit/Makefile.am @@ -21,13 +21,15 @@ AM_CPPFLAGS = -I$(top_srcdir)/include \ -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/tools \ -I$(top_builddir)/googletest/googletest/include \ -I$(top_builddir)/googletest/googletest \ -std=c++11 \ -Wno-write-strings \ -DSTATIC= \ -DUNIT_TEST -LDADD = $(top_builddir)/src/.libs/libcgroupfortesting.la +LDADD = $(top_builddir)/src/.libs/libcgroupfortesting.la \ + $(top_builddir)/src/tools/.libs/libcgset.la EXTRA_DIST = $(top_srcdir)/googletest/googletest/libgtest.so \ $(top_srcdir)/googletest/googletest/libgtest_main.so \ @@ -52,6 +54,7 @@ gtest_SOURCES = gtest.cpp \ 012-cgroup_create_cgroup.cpp \ 013-cgroup_build_tasks_procs_path.cpp \ 014-cgroupv2_get_subtree_control.cpp \ - 015-cgroupv2_controller_enabled.cpp + 015-cgroupv2_controller_enabled.cpp \ + 016-cgset_parse_r_flag.cpp gtest_LDFLAGS = -L$(top_builddir)/googletest/googletest -l:libgtest.so \ -rpath $(abs_top_builddir)/googletest/googletest -- 2.26.2 _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel