From patchwork Fri Feb 8 13:29:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafael David Tinoco X-Patchwork-Id: 157844 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp1958142jaa; Fri, 8 Feb 2019 05:30:10 -0800 (PST) X-Google-Smtp-Source: AHgI3IaAxC9HWn54rC5mUxprAaG89HGQbUH43a+CFGKEoHifssE+RPkpHJ1P+ETsP0k5I7piRidm X-Received: by 2002:a50:f141:: with SMTP id z1mr16880022edl.44.1549632610615; Fri, 08 Feb 2019 05:30:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549632610; cv=none; d=google.com; s=arc-20160816; b=mEmqGrqjCr1n5rwEO7c8jYyNB23CAXrBz40mhF+lfqpFMwlFS3XKW3luZVpZlf55CS boP1KN2gHZvKhshJkXBx/s22zIrO5jF+2fVXc1cmw5l3JIzqc0YccPLhJDh5+ArQw8ws t2yZMmbAHgHLJ9/hknbb5puT+wEvaBCk4FoPqHmoGpoMt/d5LeVKYYe5zw1WTbxKgpzM nOs7L4QUrK4n4xHTK0FmK6iEYw33Q2nW5fhfCpI0S8fIzojfgMY3a8mLHDknZxkVNG7t PGwBqVBb6SVRwv6KHC8l9RLVVRfb2wNd0oYGY69E7yxIMcwb4jYdAi5Ff/YYZBUfWSdK GMVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:references:in-reply-to:message-id:date:to:from :dkim-signature:delivered-to; bh=sfw0E3u0x52Zf1sCWLbB9x218vT3drkpOfD/EVlCK78=; b=c53u3ehsKf1rtXsU90WwZMaimsXRS5b6x5u9JS/OpLvimk/bxF+JT3waVk19y7qYbX 25CWyYSiAVJ/NNVPPQumeuNXdNNnSPk0k66nIAYQiGF2zHw/4xPXHCYOE63cq8lFiyv9 ClRXNz6XyDh16T00zfur+NZCtrrqTygzPVob6t556Kh9gC02rRZPDeqJBqFCt4EOsrAY HoeZ3oLWYbcc/CSKjEyuHYQGDN0uXilnTcuUkwOifqiymZdG4ZvJ+7JTwq35fOKPUqDG WEIXr5sgMpXSYsOuyBGUycdCVS3Y7UvWI8Z0LTl1x7Rnitt+w9QK82EdBVHjLMPCHW6B ivWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=XCwDUsOE; spf=pass (google.com: domain of ltp-bounces+patch=linaro.org@lists.linux.it designates 2001:1418:10:5::2 as permitted sender) smtp.mailfrom="ltp-bounces+patch=linaro.org@lists.linux.it"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from picard.linux.it (picard.linux.it. [2001:1418:10:5::2]) by mx.google.com with ESMTPS id e7si864289ejd.159.2019.02.08.05.30.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 05:30:10 -0800 (PST) Received-SPF: pass (google.com: domain of ltp-bounces+patch=linaro.org@lists.linux.it designates 2001:1418:10:5::2 as permitted sender) client-ip=2001:1418:10:5::2; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=XCwDUsOE; spf=pass (google.com: domain of ltp-bounces+patch=linaro.org@lists.linux.it designates 2001:1418:10:5::2 as permitted sender) smtp.mailfrom="ltp-bounces+patch=linaro.org@lists.linux.it"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 28A273EA664 for ; Fri, 8 Feb 2019 14:30:10 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-4.smtp.seeweb.it (in-4.smtp.seeweb.it [IPv6:2001:4b78:1:20::4]) by picard.linux.it (Postfix) with ESMTP id 2C9F73EA661 for ; Fri, 8 Feb 2019 14:30:02 +0100 (CET) Received: from mail-qt1-x841.google.com (mail-qt1-x841.google.com [IPv6:2607:f8b0:4864:20::841]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by in-4.smtp.seeweb.it (Postfix) with ESMTPS id CA9E1100170E for ; Fri, 8 Feb 2019 14:30:00 +0100 (CET) Received: by mail-qt1-x841.google.com with SMTP id n32so3802517qte.11 for ; Fri, 08 Feb 2019 05:30:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GU+/PMxwvzwzviUwSENmhc1jYQHxOE01yAT6E4eJPZ8=; b=XCwDUsOEmjwhXGgnM1WF8ELjWey/5wG42WZsI3ORtV6c3lAq6A5RE8vb5nL2hryxci SzwCYP9DllfSVWDvXkEs3uTs81ejTmxyDBS3pSrvyc6Wz9RgCUy7WOnriVnmskkDH4VK phaD4TqfrsxclzpJUU36oS03xq8INt+NA7fVWUEvGSUiUa0aTB0My8v9C0FCgqO7yrzP 3dJqPQGXBv4J3FvHRN/udoxj0ihc0myJFdR00hJGU1zmirRbslD8kA/okD1KfThaPzVn K43fd1KRZvRMAWh7M2gkpGHGWvotz353BHRzSYOJl84Amcc0qdjNMLqZS2/5sp0/0QXm Jf3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GU+/PMxwvzwzviUwSENmhc1jYQHxOE01yAT6E4eJPZ8=; b=IqX74wyv1nEFTDtW+YwG9VxoRKtwMkchaQaswEkIMS07JZMdY8MFbpmnDhUgD5mcXw O9Dl/nmb+R9hUPx5oVZI1NfzBxv0oJNtm53GUBku/qQ7tvLvwKTuxFaIHMOuyRLbgV1N 5SK3ugt1uFopXYgPQsBEDwF/bLRF6LO3nnh82B3QxfHV4DmiyQF6s3L2V36fUJzLzkbN O47dV6LWN7llKKmURsgue2YKw2bw7pr/ovWgiQqeepDx/+qvq6feULP5qHIAhGthF2yC rHNzNi/SGYaaIL1PnfLlsXanXs/Rici4Z0k+nNQaPw4MwfJHP0PFccU/TaRQwRBvuykb RBZA== X-Gm-Message-State: AHQUAubnninRlQ9K6zVG7aHqopWmsnrf0DnEXeyDkEj60HjAUa7IOli3 pSqX1DUe/iB5UWKllGBUeR/QWjh2hLY= X-Received: by 2002:ac8:300a:: with SMTP id f10mr6051731qte.236.1549632600137; Fri, 08 Feb 2019 05:30:00 -0800 (PST) Received: from workstation.celeiro.br. ([138.204.25.64]) by smtp.gmail.com with ESMTPSA id e186sm1872799qkb.32.2019.02.08.05.29.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 05:29:59 -0800 (PST) From: Rafael David Tinoco To: ltp@lists.linux.it Date: Fri, 8 Feb 2019 11:29:55 -0200 Message-Id: <20190208132956.18990-1-rafael.tinoco@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190207123137.GA9277@rei> References: <20190207123137.GA9277@rei> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.99.2 at in-4.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,SPF_PASS autolearn=disabled version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on in-4.smtp.seeweb.it Subject: [LTP] [PATCH v2 1/2] syscalls/clock_gettime: create clock_gettime syscall tests X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.18 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ltp-bounces+patch=linaro.org@lists.linux.it Sender: "ltp" Fixes: 342 clock_gettime{01,02} are created using the new API, based on existing kernel/timers/clock_gettime{02,03} tests, which will be deleted in the next commits. Signed-off-by: Rafael David Tinoco --- runtest/syscalls | 3 + .../kernel/syscalls/clock_gettime/.gitignore | 2 + .../kernel/syscalls/clock_gettime/Makefile | 10 ++ .../syscalls/clock_gettime/clock_gettime01.c | 141 ++++++++++++++++++ .../syscalls/clock_gettime/clock_gettime02.c | 139 +++++++++++++++++ 5 files changed, 295 insertions(+) create mode 100644 testcases/kernel/syscalls/clock_gettime/.gitignore create mode 100644 testcases/kernel/syscalls/clock_gettime/Makefile create mode 100644 testcases/kernel/syscalls/clock_gettime/clock_gettime01.c create mode 100644 testcases/kernel/syscalls/clock_gettime/clock_gettime02.c diff --git a/runtest/syscalls b/runtest/syscalls index 668c87cd1..7bccda996 100644 --- a/runtest/syscalls +++ b/runtest/syscalls @@ -79,6 +79,9 @@ clock_nanosleep01 clock_nanosleep01 clock_nanosleep02 clock_nanosleep02 clock_nanosleep2_01 clock_nanosleep2_01 +clock_gettime01 clock_gettime01 +clock_gettime02 clock_gettime02 + clock_settime01 clock_settime01 clock_settime02 clock_settime02 diff --git a/testcases/kernel/syscalls/clock_gettime/.gitignore b/testcases/kernel/syscalls/clock_gettime/.gitignore new file mode 100644 index 000000000..0f9b24ab6 --- /dev/null +++ b/testcases/kernel/syscalls/clock_gettime/.gitignore @@ -0,0 +1,2 @@ +clock_gettime01 +clock_gettime02 diff --git a/testcases/kernel/syscalls/clock_gettime/Makefile b/testcases/kernel/syscalls/clock_gettime/Makefile new file mode 100644 index 000000000..79f671f1c --- /dev/null +++ b/testcases/kernel/syscalls/clock_gettime/Makefile @@ -0,0 +1,10 @@ +# Copyright (c) 2019 - Linaro Limited. All rights reserved. +# SPDX-License-Identifier: GPL-2.0-or-later + +top_srcdir ?= ../../../.. + +include $(top_srcdir)/include/mk/testcases.mk + +LDLIBS+=-lrt + +include $(top_srcdir)/include/mk/generic_leaf_target.mk \ No newline at end of file diff --git a/testcases/kernel/syscalls/clock_gettime/clock_gettime01.c b/testcases/kernel/syscalls/clock_gettime/clock_gettime01.c new file mode 100644 index 000000000..d365823b2 --- /dev/null +++ b/testcases/kernel/syscalls/clock_gettime/clock_gettime01.c @@ -0,0 +1,141 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (c) 2019 Linaro Limited. All rights reserved. + * Author: Rafael David Tinoco + */ +/* + * Basic test for clock_gettime(2) on multiple clocks: + * + * 1) CLOCK_REALTIME + * 2) CLOCK_MONOTONIC + * 3) CLOCK_PROCESS_CPUTIME_ID + * 4) CLOCK_THREAD_CPUTIME_ID + * 5) CLOCK_REALTIME_COARSE + * 6) CLOCK_MONOTONIC_COARSE + * 7) CLOCK_MONOTONIC_RAW + * 8) CLOCK_BOOTTIME + */ + +#include "config.h" +#include "tst_timer.h" +#include "tst_safe_clocks.h" +#include "tst_test.h" +#include "lapi/syscalls.h" + +struct test_case { + clockid_t clktype; + int allow_inval; +}; + +struct tmpfunc { + int (*func)(clockid_t clk_id, struct timespec *tp); + char *desc; +}; + +struct test_case tc[] = { + { + .clktype = CLOCK_REALTIME, + }, + { + .clktype = CLOCK_MONOTONIC, + }, + { + .clktype = CLOCK_PROCESS_CPUTIME_ID, + }, + { + .clktype = CLOCK_THREAD_CPUTIME_ID, + }, + { + .clktype = CLOCK_REALTIME_COARSE, + .allow_inval = 1, + }, + { + .clktype = CLOCK_MONOTONIC_COARSE, + .allow_inval = 1, + }, + { + .clktype = CLOCK_MONOTONIC_RAW, + .allow_inval = 1, + }, + { + .clktype = CLOCK_BOOTTIME, + .allow_inval = 1, + }, +}; + +static int sys_clock_gettime(clockid_t clk_id, struct timespec *tp) +{ + return tst_syscall(__NR_clock_gettime, clk_id, tp); +} + +static int check_spec(struct timespec *spec) +{ + return (spec->tv_nsec != 0 || spec->tv_sec != 0) ? 1 : 0; +} + +static void verify_clock_gettime(unsigned int i) +{ + size_t sz; + struct timespec spec; + + /* + * check clock_gettime() syscall AND libc (or vDSO) functions + */ + struct tmpfunc tf[] = { + { .func = sys_clock_gettime, .desc = "syscall" }, + { .func = clock_gettime, .desc = "vDSO or syscall" }, + }; + + for (sz = 0; sz < ARRAY_SIZE(tf); sz++) { + + memset(&spec, 0, sizeof(struct timespec)); + + TEST(tf[sz].func(tc[i].clktype, &spec)); + + if (TST_RET == -1) { + + /* errors: allow unsupported clock types */ + + if (tc[i].allow_inval && TST_ERR == EINVAL) { + + tst_res(TPASS, "clock_gettime(2): unsupported " + "clock %s (%s) failed as " + "expected", + tst_clock_name(tc[i].clktype), + tf[sz].desc); + + } else { + + tst_res(TFAIL | TTERRNO, "clock_gettime(2): " + "clock %s (%s) failed " + "unexpectedly", + tst_clock_name(tc[i].clktype), + tf[sz].desc); + } + + } else { + + /* success: also check if timespec was changed */ + + if (check_spec(&spec)) { + tst_res(TPASS, "clock_gettime(2): clock %s " + "(%s) passed", + tst_clock_name(tc[i].clktype), + tf[sz].desc); + } else { + + tst_res(TFAIL, "clock_gettime(2): clock %s " + "(%s) passed, unchanged " + "timespec", + tst_clock_name(tc[i].clktype), + tf[sz].desc); + } + } + } +} + +static struct tst_test test = { + .test = verify_clock_gettime, + .tcnt = ARRAY_SIZE(tc), + .needs_root = 1, +}; diff --git a/testcases/kernel/syscalls/clock_gettime/clock_gettime02.c b/testcases/kernel/syscalls/clock_gettime/clock_gettime02.c new file mode 100644 index 000000000..4db52c09d --- /dev/null +++ b/testcases/kernel/syscalls/clock_gettime/clock_gettime02.c @@ -0,0 +1,139 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (c) 2019 Linaro Limited. All rights reserved. + * Author: Rafael David Tinoco + */ +/* + * Bad argument tests for clock_gettime(2) on multiple clocks: + * + * 1) MAX_CLOCKS + * 2) MAX_CLOCKS + 1 + * 3) CLOCK_REALTIME + * 4) CLOCK_MONOTONIC + * 5) CLOCK_PROCESS_CPUTIME_ID + * 6) CLOCK_THREAD_CPUTIME_ID + * 7) CLOCK_REALTIME_COARSE + * 8) CLOCK_MONOTONIC_COARSE + * 9) CLOCK_MONOTONIC_RAW + * 10) CLOCK_BOOTTIME + */ + +#include "config.h" +#include "tst_test.h" +#include "lapi/syscalls.h" +#include "lapi/posix_clocks.h" +#include "tst_timer.h" +#include "tst_safe_clocks.h" + +#include + +#define DELTA_SEC 10 +#define NSEC_PER_SEC (1000000000L) +#define MAX_CLOCKS 16 + +struct test_case { + clockid_t clktype; + int exp_err; + int allow_inval; +}; + +struct test_case tc[] = { + { + .clktype = MAX_CLOCKS, + .exp_err = EINVAL, + }, + { + .clktype = MAX_CLOCKS + 1, + .exp_err = EINVAL, + }, + /* + * Different POSIX clocks have different (*clock_get)() handlers. + * It justifies testing EFAULT for all. + */ + { + .clktype = CLOCK_REALTIME, + .exp_err = EFAULT, + }, + { + .clktype = CLOCK_MONOTONIC, + .exp_err = EFAULT, + }, + { + .clktype = CLOCK_PROCESS_CPUTIME_ID, + .exp_err = EFAULT, + }, + { + .clktype = CLOCK_THREAD_CPUTIME_ID, + .exp_err = EFAULT, + }, + { + .clktype = CLOCK_REALTIME_COARSE, + .exp_err = EFAULT, + .allow_inval = 1, + }, + { + .clktype = CLOCK_MONOTONIC_COARSE, + .exp_err = EFAULT, + .allow_inval = 1, + }, + { + .clktype = CLOCK_MONOTONIC_RAW, + .exp_err = EFAULT, + .allow_inval = 1, + }, + { + .clktype = CLOCK_BOOTTIME, + .exp_err = EFAULT, + .allow_inval = 1, + }, +}; + +/* + * bad pointer w/ libc causes SIGSEGV signal, call syscall directly + */ +static int sys_clock_gettime(clockid_t clk_id, struct timespec *tp) +{ + return tst_syscall(__NR_clock_gettime, clk_id, tp); +} + +static void verify_clock_gettime(unsigned int i) +{ + struct timespec spec, *specptr; + + specptr = &spec; + + /* bad pointer cases */ + if (tc[i].exp_err == EFAULT) + specptr = tst_get_bad_addr(NULL); + + TEST(sys_clock_gettime(tc[i].clktype, specptr)); + + if (TST_RET == -1) { + + if ((tc[i].exp_err == TST_ERR) || + (tc[i].allow_inval && TST_ERR == EINVAL)) { + + tst_res(TPASS | TTERRNO, "clock_gettime(2): " + "clock %s failed as expected", + tst_clock_name(tc[i].clktype)); + + } else { + + tst_res(TFAIL | TTERRNO, "clock_gettime(2): " + "clock %s failed unexpectedly", + tst_clock_name(tc[i].clktype)); + } + + } else { + + tst_res(TFAIL, "clock_gettime(2): clock %s passed" + " unexcpectedly", + tst_clock_name(tc[i].clktype)); + } +} + +static struct tst_test test = { + .test = verify_clock_gettime, + .tcnt = ARRAY_SIZE(tc), + .needs_root = 1, +}; From patchwork Fri Feb 8 13:29:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafael David Tinoco X-Patchwork-Id: 157845 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp1958270jaa; Fri, 8 Feb 2019 05:30:15 -0800 (PST) X-Google-Smtp-Source: AHgI3Ibk62LlHffg34NNKXJarxgRZOu0iM5vyoxGR/LySmz3w4ahTZYmmM10VgbGWFmQEWCgoiqJ X-Received: by 2002:adf:8366:: with SMTP id 93mr7063924wrd.20.1549632615527; Fri, 08 Feb 2019 05:30:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549632615; cv=none; d=google.com; s=arc-20160816; b=MW5Bh1sl2NgzayDneMkBlPokcebR9GwvqoimUBcjKVH+Z1uPbJGbKDzkspcFzNhlfz KtBbYTeFyx47ZJERW4UEyZIFhPCR1OVVf2x1Is7Pg3ScXh7liiafLkCYwa5OfcedXNqe lc1S6aXtca+FU65u8crld7aAWbqTFX0uDfQo8iiIOIpVVnN30aQOCOlUlcN8+lwKczwz EjA7pp/JtboyyILTHc1BXfVCd1s7o+cl7lpTAZyUU4T7GVseYoQbxw9mSw8PYemJyYbt kBr2dpC6BPFsY7Hpa1LesgPH9RbOQwMecKWAHnYnGX5PeTKsi4B1N1UQoSg9o7w1zYat 5Jlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:references:in-reply-to:message-id:date:to:from :dkim-signature:delivered-to; bh=B/lfSn3F8GvO7P5hWpk5pQnq8X1ekKIRjV4VJZN97yA=; b=0C1WvMugEQ03gSNdXQF6V6BlgakHPMjPaeRkmEXqB7WyNVXcOzdGe96+PvbXO3FgJk QtGhaPi8E2MBnMRCZOyVj4AJ8sluQY8KBomev2iI4vtx/UMow2hgP5q2RtVaFjlrtSBE M+G0FOVrBLOvW7IuPdr10hy9di6R2lWY4pv/Qqm6Fu7Z3uq0WEk3Desx7r1JInDTFi4e U3rW0tSrmV5CZ3ylAbxFpfvBMGV3ZOcVnzwX4wI/ViRPvbd1PqeEzVbHgEnxlpttTiEi WKcZ9coURqhtvUn+iu3kAv+Y2oTcHdQZXaR7bQMZYRJHv2OG9w94FWFqfNxmdmTFGEqn Q28g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=Kqdhm0FK; spf=pass (google.com: domain of ltp-bounces+patch=linaro.org@lists.linux.it designates 213.254.12.146 as permitted sender) smtp.mailfrom="ltp-bounces+patch=linaro.org@lists.linux.it"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from picard.linux.it (picard.linux.it. [213.254.12.146]) by mx.google.com with ESMTPS id h11si2042637wrw.18.2019.02.08.05.30.15 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 05:30:15 -0800 (PST) Received-SPF: pass (google.com: domain of ltp-bounces+patch=linaro.org@lists.linux.it designates 213.254.12.146 as permitted sender) client-ip=213.254.12.146; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=Kqdhm0FK; spf=pass (google.com: domain of ltp-bounces+patch=linaro.org@lists.linux.it designates 213.254.12.146 as permitted sender) smtp.mailfrom="ltp-bounces+patch=linaro.org@lists.linux.it"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 08C413EA785 for ; Fri, 8 Feb 2019 14:30:15 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-4.smtp.seeweb.it (in-4.smtp.seeweb.it [217.194.8.4]) by picard.linux.it (Postfix) with ESMTP id 4A29C3EA661 for ; Fri, 8 Feb 2019 14:30:05 +0100 (CET) Received: from mail-qk1-x741.google.com (mail-qk1-x741.google.com [IPv6:2607:f8b0:4864:20::741]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by in-4.smtp.seeweb.it (Postfix) with ESMTPS id 1436D1001725 for ; Fri, 8 Feb 2019 14:30:03 +0100 (CET) Received: by mail-qk1-x741.google.com with SMTP id q1so2030499qkf.13 for ; Fri, 08 Feb 2019 05:30:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iGd2QyQkSQE+01qJz1nJ1816VWkuyZ3Lc+i4MFYKxRg=; b=Kqdhm0FKzNQtD0utmTnwQT3PCaSQxl8zt5Ru9kWW0EKLtQ3f+wQ72GmFICF0dD5K00 9ZryfkAUrn0YJQ9B0FDmBdxrbbSJdyNiurDzpeP+ANB3qAFC9paBA2X52FzI9zlInX+m 0LedJc8pevYTWi2WHkIY0fkg1ARVvTzM6jlmZjgoSuN5J/4NQQdn2Xp5TLQeStgSQJFy oR2Gz5me9B4wFr67ebpXH87JcHL03Lc46asts6F9BmGw3N4FziuYyrBU4VjU+3jyu9qc M3EFO4twfGwJvN3t/TMCbZyo88luFbNmItGJ0YArKg6JeXkgUzblqsaGBkXE2aOyh6ke 0O/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iGd2QyQkSQE+01qJz1nJ1816VWkuyZ3Lc+i4MFYKxRg=; b=IE5Faf0e46GIdYMPsm+NE1HX3TaSq9+QPZ/j3SwaJsxwpXTwc6Mhu98JbebESfY52z uJSNw6FK4dWUZqUwUIG7x/UHXR/EyxVo24tgqFz83vCoQkDlib+BA1veCJtxoY0bcVGw Hfmct9ipD/A1Q66gZb+1D1FkS6Fcz8SZwsfvb+X2TJYAgowfqAu/bWZPgImE/rQtw0Sj izOC8j2W0JPDqMd95pL6fQZykE6Yw5q9OPhTTmEjcxGI2/7m7m0DcQ/I+En1xuv5uLCB Nrm7lbHgxU8J+IMZPK9GOBHq5DCUULRBaXrzKsFLyh3Rzqy3r88aegwjUKqVdEBpNIQf dwNQ== X-Gm-Message-State: AHQUAua4PKaMQuheZcp3mISv3RRPvYbIw73Vrs4xbduOyIRIWy6d4ZoY 85NVvv5cSdLdubkr0bDx69OxO8g6vUU= X-Received: by 2002:a37:d943:: with SMTP id u64mr15945278qki.48.1549632602206; Fri, 08 Feb 2019 05:30:02 -0800 (PST) Received: from workstation.celeiro.br. ([138.204.25.64]) by smtp.gmail.com with ESMTPSA id e186sm1872799qkb.32.2019.02.08.05.30.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 05:30:01 -0800 (PST) From: Rafael David Tinoco To: ltp@lists.linux.it Date: Fri, 8 Feb 2019 11:29:56 -0200 Message-Id: <20190208132956.18990-2-rafael.tinoco@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190208132956.18990-1-rafael.tinoco@linaro.org> References: <20190207123137.GA9277@rei> <20190208132956.18990-1-rafael.tinoco@linaro.org> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.99.2 at in-4.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,SPF_PASS autolearn=disabled version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on in-4.smtp.seeweb.it Subject: [LTP] [PATCH v2 2/2] timers/clock_gettime: remove clock_gettime tests X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.18 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ltp-bounces+patch=linaro.org@lists.linux.it Sender: "ltp" clock_gettime{01,02} syscall tests were created, using the new API, based on existing and older kernel/timers/clock_gettime{02,03} tests. This commit deletes older timers/clock_gettime/* tests. Signed-off-by: Rafael David Tinoco --- runtest/timers | 2 - .../kernel/timers/clock_gettime/.gitignore | 2 - .../kernel/timers/clock_gettime/Makefile | 27 --- .../timers/clock_gettime/clock_gettime02.c | 120 ------------ .../timers/clock_gettime/clock_gettime03.c | 173 ------------------ 5 files changed, 324 deletions(-) delete mode 100644 testcases/kernel/timers/clock_gettime/.gitignore delete mode 100644 testcases/kernel/timers/clock_gettime/Makefile delete mode 100644 testcases/kernel/timers/clock_gettime/clock_gettime02.c delete mode 100644 testcases/kernel/timers/clock_gettime/clock_gettime03.c diff --git a/runtest/timers b/runtest/timers index 618d2cb0c..5f5ecb6ee 100644 --- a/runtest/timers +++ b/runtest/timers @@ -1,6 +1,4 @@ #DESCRIPTION:Posix Timer Tests -clock_gettime02 clock_gettime02 -clock_gettime03 clock_gettime03 timer_create02 timer_create02 timer_create03 timer_create03 timer_create04 timer_create04 diff --git a/testcases/kernel/timers/clock_gettime/.gitignore b/testcases/kernel/timers/clock_gettime/.gitignore deleted file mode 100644 index 004e74214..000000000 --- a/testcases/kernel/timers/clock_gettime/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/clock_gettime02 -/clock_gettime03 diff --git a/testcases/kernel/timers/clock_gettime/Makefile b/testcases/kernel/timers/clock_gettime/Makefile deleted file mode 100644 index 8de247075..000000000 --- a/testcases/kernel/timers/clock_gettime/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -# -# Copyright (c) International Business Machines Corp., 2001 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# - -top_srcdir ?= ../../../.. - -include $(top_srcdir)/include/mk/testcases.mk - -CPPFLAGS += -D_GNU_SOURCE -I$(abs_srcdir)/../include - -LDLIBS += -lpthread -lrt - -include $(top_srcdir)/include/mk/generic_leaf_target.mk diff --git a/testcases/kernel/timers/clock_gettime/clock_gettime02.c b/testcases/kernel/timers/clock_gettime/clock_gettime02.c deleted file mode 100644 index e68a2070c..000000000 --- a/testcases/kernel/timers/clock_gettime/clock_gettime02.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) Wipro Technologies Ltd, 2003. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - */ -/************************************************************************** - * - * TEST IDENTIFIER : clock_gettime02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for clock_gettime(2) - * - * TEST CASE TOTAL : 2 - * - * AUTHOR : Aniruddha Marathe - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * DESCRIPTION - * This is a Phase I test for the clock_gettime(2) system call. - * It is intended to provide a limited exposure of the system call. - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call for each defined clock value - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * USAGE: - * clock_gettime02 [-c n] [-e] [-i n] [-I x] [-P x] [-t] [-p] - * where: - * -c n : Run n copies simultaneously. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -p : Pause for SIGUSR1 before starting - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - *RESTRICTIONS: - * None - *****************************************************************************/ - -#include -#include -#include -#include - -#include "test.h" -#include "common_timers.h" - -void setup(void); -static clockid_t clocks[2] = { CLOCK_REALTIME, CLOCK_MONOTONIC }; - -char *TCID = "clock_gettime02"; -int TST_TOTAL = ARRAY_SIZE(clocks); - -int main(int ac, char **av) -{ - int lc, i; - struct timespec spec; - - tst_parse_opts(ac, av, NULL, NULL); - - setup(); - - for (lc = 0; TEST_LOOPING(lc); lc++) { - - tst_count = 0; - - for (i = 0; i < TST_TOTAL; i++) { - TEST(ltp_syscall(__NR_clock_gettime, clocks[i], &spec)); - tst_resm((TEST_RETURN < 0 ? TFAIL | TTERRNO : TPASS), - "%s", - (TEST_RETURN == 0 ? "passed" : "failed")); - } - } - - CLEANUP(); - tst_exit(); -} - -/* setup() - performs all ONE TIME setup for this test */ -void setup(void) -{ - - tst_sig(NOFORK, DEF_HANDLER, CLEANUP); - - TEST_PAUSE; -} - -/* - * CLEANUP() - Performs one time CLEANUP for this test at - * completion or premature exit - */ -void cleanup(void) -{ -} diff --git a/testcases/kernel/timers/clock_gettime/clock_gettime03.c b/testcases/kernel/timers/clock_gettime/clock_gettime03.c deleted file mode 100644 index 2194d104a..000000000 --- a/testcases/kernel/timers/clock_gettime/clock_gettime03.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright (c) Wipro Technologies Ltd, 2003. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - */ -/************************************************************************** - * - * TEST IDENTIFIER : clock_gettime03 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Test checking for basic error conditions for - * clock_gettime(2) - * - * TEST CASE TOTAL : 7 - * - * AUTHOR : Aniruddha Marathe - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * DESCRIPTION - * This test case check whether clock_gettime(2) returns appropriate error - * value for invalid parameter - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * If it is the first test case - * make temp a bad pointer - * Otherwise pass defined struct timespec variable to temp - * Execute system call with invalid parameter - * Check return code, if system call fails with errno == expected errno - * Issue syscall passed with expected errno - * Otherwise, Issue syscall failed to produce expected errno - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * USAGE: - * clock_gettime03 [-c n] [-e] [-i n] [-I x] [-P x] [-t] [-p] - * where: - * -c n : run n copies simultaneously - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -p : Pause for SIGUSR1 before starting - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * RESTRICTIONS: - * None - *****************************************************************************/ - -#include -#include -#include -#include - -#include "test.h" -#include "common_timers.h" - -void setup(void); - -int testcase[6] = { - EFAULT, /* Bad timespec */ - EFAULT, /* Bad timespec */ - EINVAL, /* MAX_CLOCKS */ - EINVAL /* MAX_CLOCKS + 1 */ -}; - -char *TCID = "clock_gettime03"; /* Test program identifier. */ -int TST_TOTAL = ARRAY_SIZE(testcase); - -int main(int ac, char **av) -{ - int i, lc; - struct timespec spec, *temp; - - clockid_t clocks[] = { - CLOCK_REALTIME, - CLOCK_MONOTONIC, - MAX_CLOCKS, - MAX_CLOCKS + 1, - CLOCK_PROCESS_CPUTIME_ID, - CLOCK_THREAD_CPUTIME_ID - }; - - tst_parse_opts(ac, av, NULL, NULL); - - /* - * PROCESS_CPUTIME_ID & THREAD_CPUTIME_ID are not supported on - * kernel versions lower than 2.6.12 - */ - if ((tst_kvercmp(2, 6, 12)) < 0) { - testcase[4] = EINVAL; - testcase[5] = EINVAL; - } else { - testcase[4] = EFAULT; - testcase[5] = EFAULT; - } - - setup(); - - for (lc = 0; TEST_LOOPING(lc); lc++) { - - tst_count = 0; - - for (i = 0; i < TST_TOTAL; i++) { - temp = &spec; - - if (i == 0) { - temp = (struct timespec *)-1; - } else if (i == 1) { - temp = NULL; - } else if ((i >= 4) && (tst_kvercmp(2, 6, 12) >= 0)) { - temp = NULL; - } - - TEST(ltp_syscall(__NR_clock_gettime, clocks[i], temp)); - - /* check return code */ - if (TEST_RETURN == -1 && TEST_ERRNO == testcase[i]) { - tst_resm(TPASS | TTERRNO, - "got expected failure"); - } else { - tst_resm(TFAIL | TTERRNO, - "failed to produce expected error " - "[expected errno = %d (%s), " - "TEST_RETURN = %ld]", - testcase[i], strerror(testcase[i]), - TEST_RETURN); - } /* end of else */ - - } /*End of TEST CASE LOOPING */ - - } /*End for TEST_LOOPING */ - - cleanup(); - tst_exit(); -} - -/* setup() - performs all ONE TIME setup for this test */ -void setup(void) -{ - - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - TEST_PAUSE; -} - -/* - * cleanup() - Performs one time cleanup for this test at - * completion or premature exit - */ -void cleanup(void) -{ -}