From 98d092e73679be792f99bb6debb9ecffbf403987 Mon Sep 17 00:00:00 2001 From: Alex Waterman Date: Wed, 27 Jun 2018 14:45:16 -0700 Subject: gpu: nvgpu: unit: Add test unit module Add a super simple tiny test unit module to test the unit test framework. This unit test has a test that deliberately fails so it obviously cannot be part of a real unit test run. Eventually this will have to be removed or otherwise skipped. JIRA NVGPU-525 Change-Id: I41532a85156445a778897bbc84bb5919deab56ae Signed-off-by: Alex Waterman Reviewed-on: https://git-master.nvidia.com/r/1687095 GVS: Gerrit_Virtual_Submit Reviewed-by: Konsta Holtta Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- userspace/Makefile.sources | 3 ++- userspace/units/Makefile.units | 2 +- userspace/units/test/Makefile | 31 +++++++++++++++++++++++++++++ userspace/units/test/test.c | 44 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 userspace/units/test/Makefile create mode 100644 userspace/units/test/test.c (limited to 'userspace') diff --git a/userspace/Makefile.sources b/userspace/Makefile.sources index cb46573a..e0ad3eb4 100644 --- a/userspace/Makefile.sources +++ b/userspace/Makefile.sources @@ -45,4 +45,5 @@ CORE_HEADERS := \ $(CORE_SRC)/../include/unit/*.h # Each directory under the UNIT_SRC directory should correspond to one module. -UNITS := +UNITS := \ + $(UNIT_SRC)/test diff --git a/userspace/units/Makefile.units b/userspace/units/Makefile.units index 64b9e07d..9ba3111d 100644 --- a/userspace/units/Makefile.units +++ b/userspace/units/Makefile.units @@ -37,7 +37,7 @@ all: lib$(MODULE).so $(CC) $(CFLAGS) -c -o $@ $< lib$(MODULE).so: $(OBJS) - $(CC) -shared -o $@ $(OBJS) + $(CC) -shared -o $@ $(OBJS) $(LIB_PATHS) -lnvgpu_unit @mkdir -p $(UNIT_OUT)/ @cp $@ $(UNIT_OUT)/ diff --git a/userspace/units/test/Makefile b/userspace/units/test/Makefile new file mode 100644 index 00000000..fad38864 --- /dev/null +++ b/userspace/units/test/Makefile @@ -0,0 +1,31 @@ +# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +.SUFFIXES: + +# +# Simple test unit test. +# + +OBJS = test.o +MODULE = test + +# Defines all the rules for building a typical module. +include ../Makefile.units diff --git a/userspace/units/test/test.c b/userspace/units/test/test.c new file mode 100644 index 00000000..e5b9cae7 --- /dev/null +++ b/userspace/units/test/test.c @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include + +#include + +#include + +int test_simplest(struct unit_module *m, struct gk20a *g, void *args) +{ + return UNIT_SUCCESS; +} + +int test_fail(struct unit_module *m, struct gk20a *g, void *args) +{ + return UNIT_FAIL; +} + +struct unit_module_test test_tests[] = { + UNIT_TEST(simplest, test_simplest, NULL), + UNIT_TEST(fail, test_fail, NULL), +}; + +UNIT_MODULE(test, test_tests, UNIT_PRIO_SELF_TEST); -- cgit v1.2.2