From patchwork Wed May 15 09:52:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cyril Hrubis X-Patchwork-Id: 1099915 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.linux.it (client-ip=213.254.12.146; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 453qbv1p3pz9sD4 for ; Wed, 15 May 2019 19:52:42 +1000 (AEST) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 4B7DC3EA208 for ; Wed, 15 May 2019 11:52:39 +0200 (CEST) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-3.smtp.seeweb.it (in-3.smtp.seeweb.it [IPv6:2001:4b78:1:20::3]) by picard.linux.it (Postfix) with ESMTP id 70C173EA199 for ; Wed, 15 May 2019 11:52:37 +0200 (CEST) Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by in-3.smtp.seeweb.it (Postfix) with ESMTPS id 3C0B01A011FD for ; Wed, 15 May 2019 11:52:32 +0200 (CEST) Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id D9AA3AF27 for ; Wed, 15 May 2019 09:52:31 +0000 (UTC) From: Cyril Hrubis To: ltp@lists.linux.it Date: Wed, 15 May 2019 11:52:30 +0200 Message-Id: <20190515095230.12585-1-chrubis@suse.cz> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.99.2 at in-3.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.0 required=7.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, SPF_PASS autolearn=disabled version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on in-3.smtp.seeweb.it Subject: [LTP] [PATCH] syscalls/ioctl_ns: Fix failures on -m32 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+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" These are not apparently implemented in the 32bit compat layer so the test were failing with ENOTTY there. Reported-by: Richard Palethorpe Signed-off-by: Cyril Hrubis Reviewed-by: Petr Vorel --- testcases/kernel/syscalls/ioctl/ioctl_ns01.c | 3 +++ testcases/kernel/syscalls/ioctl/ioctl_ns02.c | 3 +++ testcases/kernel/syscalls/ioctl/ioctl_ns03.c | 5 +++++ testcases/kernel/syscalls/ioctl/ioctl_ns04.c | 3 +++ testcases/kernel/syscalls/ioctl/ioctl_ns05.c | 13 ++++++++++++- testcases/kernel/syscalls/ioctl/ioctl_ns06.c | 11 ++++++++++- 6 files changed, 36 insertions(+), 2 deletions(-) diff --git a/testcases/kernel/syscalls/ioctl/ioctl_ns01.c b/testcases/kernel/syscalls/ioctl/ioctl_ns01.c index f2c77a01a..dfde4da6c 100644 --- a/testcases/kernel/syscalls/ioctl/ioctl_ns01.c +++ b/testcases/kernel/syscalls/ioctl/ioctl_ns01.c @@ -40,6 +40,9 @@ static void test_ns_get_parent(void) fd = SAFE_OPEN("/proc/self/ns/pid", O_RDONLY); parent_fd = ioctl(fd, NS_GET_PARENT); if (parent_fd == -1) { + if (errno == ENOTTY) + tst_brk(TCONF, "ioctl(NS_GET_PARENT) not implemented"); + if (errno == EPERM) tst_res(TPASS, "NS_GET_PARENT fails with EPERM"); else diff --git a/testcases/kernel/syscalls/ioctl/ioctl_ns02.c b/testcases/kernel/syscalls/ioctl/ioctl_ns02.c index 4f5cb1427..33ef757a8 100644 --- a/testcases/kernel/syscalls/ioctl/ioctl_ns02.c +++ b/testcases/kernel/syscalls/ioctl/ioctl_ns02.c @@ -32,6 +32,9 @@ static void run(void) fd = SAFE_OPEN("/proc/self/ns/uts", O_RDONLY); parent_fd = ioctl(fd, NS_GET_PARENT); if (parent_fd == -1) { + if (errno == ENOTTY) + tst_brk(TCONF, "ioctl(NS_GET_PARENT) not implemented"); + if (errno == EINVAL) tst_res(TPASS, "NS_GET_PARENT fails with EINVAL"); else diff --git a/testcases/kernel/syscalls/ioctl/ioctl_ns03.c b/testcases/kernel/syscalls/ioctl/ioctl_ns03.c index 2e19cff3a..279032d20 100644 --- a/testcases/kernel/syscalls/ioctl/ioctl_ns03.c +++ b/testcases/kernel/syscalls/ioctl/ioctl_ns03.c @@ -33,6 +33,11 @@ static void run(void) owner_fd = ioctl(fd, NS_GET_OWNER_UID, &uid); if (owner_fd == -1) { + if (errno == ENOTTY) { + tst_brk(TCONF, + "ioctl(NS_GET_OWNER_UID) not implemented"); + } + if (errno == EINVAL) tst_res(TPASS, "NS_GET_OWNER_UID fails, UTS namespace"); else diff --git a/testcases/kernel/syscalls/ioctl/ioctl_ns04.c b/testcases/kernel/syscalls/ioctl/ioctl_ns04.c index b9181cb3d..90035cbeb 100644 --- a/testcases/kernel/syscalls/ioctl/ioctl_ns04.c +++ b/testcases/kernel/syscalls/ioctl/ioctl_ns04.c @@ -31,6 +31,9 @@ static void run(void) fd = SAFE_OPEN("/proc/self/ns/user", O_RDONLY); parent_fd = ioctl(fd, NS_GET_USERNS); if (parent_fd == -1) { + if (errno == ENOTTY) + tst_brk(TCONF, "ioctl(NS_GET_USERNS) not implemented"); + if (errno == EPERM) tst_res(TPASS, "NS_GET_USERNS fails with EPERM"); else diff --git a/testcases/kernel/syscalls/ioctl/ioctl_ns05.c b/testcases/kernel/syscalls/ioctl/ioctl_ns05.c index bdef4d6e9..a8dee07a1 100644 --- a/testcases/kernel/syscalls/ioctl/ioctl_ns05.c +++ b/testcases/kernel/syscalls/ioctl/ioctl_ns05.c @@ -53,7 +53,18 @@ static void run(void) sprintf(child_namespace, "/proc/%i/ns/pid", pid); my_fd = SAFE_OPEN("/proc/self/ns/pid", O_RDONLY); child_fd = SAFE_OPEN(child_namespace, O_RDONLY); - parent_fd = SAFE_IOCTL(child_fd, NS_GET_PARENT); + parent_fd = ioctl(child_fd, NS_GET_PARENT); + + if (parent_fd == -1) { + TST_CHECKPOINT_WAKE(0); + + if (errno == ENOTTY) { + tst_res(TCONF, "ioctl(NS_GET_PARENT) not implemented"); + return; + } + + tst_brk(TBROK | TERRNO, "ioctl(NS_GET_PARENT) failed"); + } struct stat my_stat, child_stat, parent_stat; diff --git a/testcases/kernel/syscalls/ioctl/ioctl_ns06.c b/testcases/kernel/syscalls/ioctl/ioctl_ns06.c index eabb7e49c..805a0a072 100644 --- a/testcases/kernel/syscalls/ioctl/ioctl_ns06.c +++ b/testcases/kernel/syscalls/ioctl/ioctl_ns06.c @@ -50,7 +50,16 @@ static void run(void) my_fd = SAFE_OPEN("/proc/self/ns/user", O_RDONLY); child_fd = SAFE_OPEN(child_namespace, O_RDONLY); - parent_fd = SAFE_IOCTL(child_fd, NS_GET_USERNS); + parent_fd = ioctl(child_fd, NS_GET_USERNS); + + if (parent_fd == -1) { + TST_CHECKPOINT_WAKE(0); + + if (errno == ENOTTY) + tst_brk(TCONF, "ioctl(NS_GET_USERNS) not implemented"); + + tst_brk(TBROK | TERRNO, "ioctl(NS_GET_USERNS) failed"); + } struct stat my_stat, child_stat, parent_stat;