From eb028d50bbc1bebeaa50a70bb1004bcfe39395a5 Mon Sep 17 00:00:00 2001 From: Simon Gerber Date: Mon, 3 Oct 2016 17:25:20 +0200 Subject: [PATCH] harness: Add test for vnode_map() with too many ptes requested Signed-off-by: Simon Gerber --- tools/harness/tests/nkmtest.py | 27 ++++++++++++++++++++++++--- usr/tests/nkm/map_offset.c | 6 +++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/tools/harness/tests/nkmtest.py b/tools/harness/tests/nkmtest.py index 9359201..32a4d6c 100644 --- a/tools/harness/tests/nkmtest.py +++ b/tools/harness/tests/nkmtest.py @@ -1,15 +1,15 @@ ########################################################################## -# Copyright (c) 2009, ETH Zurich. +# Copyright (c) 2009 - 2016, ETH Zurich. # All rights reserved. # # This file is distributed under the terms in the attached LICENSE file. # If you do not find this file, copies can be found by writing to: -# ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group. +# ETH Zurich D-INFK, Universitaetstr. 6, CH-8092 Zurich. Attn: Systems Group. ########################################################################## import tests from common import TestCommon -from results import PassFailResult +from results import PassFailResult, PassFailMultiResult @tests.add_test class NkmTest(TestCommon): @@ -31,3 +31,24 @@ class NkmTest(TestCommon): lastline = line passed = lastline.startswith(self.get_finish_string()) return PassFailResult(passed) + +@tests.add_test +class NkmTestMapOffset(TestCommon): + '''test that kernel map interface does check source frame size''' + name = "nkmtest_map_offset" + + def get_modules(self, build, machine): + modules = super(NkmTestMapOffset, self).get_modules(build, machine) + modules.add_module("nkmtest_map_offset") + return modules + + def get_finish_string(self): + return "nkmtest_map_offset: " + + def process_data(self, testdir, rawiter): + # the test passed iff the last line is the finish string + errors = [] + for line in rawiter: + if line.startswith("nkmtest_map_offset: FAILURE"): + errors.append(line) + return PassFailMultiResult(self.name, errors) diff --git a/usr/tests/nkm/map_offset.c b/usr/tests/nkm/map_offset.c index 9f467b8..3116157 100644 --- a/usr/tests/nkm/map_offset.c +++ b/usr/tests/nkm/map_offset.c @@ -56,8 +56,8 @@ int main(int argc, char *argv[]) // try to map 128 pages with 1page frame err = vnode_map(vnode, frame, 0, FLAGS, 0, 128, mapping); if (err_no(err) != SYS_ERR_FRAME_OFFSET_INVALID) { - printf("FAILURE: got %s from vnode_map(128 pages); expected SYS_ERR_FRAME_OFFSET_INVALID\n", - err_getcode(err)); + printf("%s: FAILURE: got %s from vnode_map(128 pages); expected SYS_ERR_FRAME_OFFSET_INVALID\n", + argv[0], err_getcode(err)); exit(1); } assert(err_no(err) == SYS_ERR_FRAME_OFFSET_INVALID); @@ -81,7 +81,7 @@ int main(int argc, char *argv[]) } assert(err_is_ok(err)); - printf("SUCCESS\n"); + printf("%s: SUCCESS\n", argv[0]); exit(0); } -- 1.7.2.5