From patchwork Wed Aug 1 05:50:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiao Yang X-Patchwork-Id: 951423 X-Patchwork-Delegate: petr.vorel@gmail.com 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=2001:1418:10:5::2; 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=cn.fujitsu.com Received: from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41fml36V6bz9ryn for ; Tue, 31 Jul 2018 16:30:03 +1000 (AEST) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 0044D3E76A2 for ; Tue, 31 Jul 2018 08:29:59 +0200 (CEST) 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 2677D3E757E for ; Tue, 31 Jul 2018 08:29:57 +0200 (CEST) Received: from heian.cn.fujitsu.com (mail.cn.fujitsu.com [183.91.158.132]) by in-4.smtp.seeweb.it (Postfix) with ESMTP id F201A1000A51 for ; Tue, 31 Jul 2018 08:29:56 +0200 (CEST) X-IronPort-AV: E=Sophos;i="5.43,368,1503331200"; d="scan'208";a="42858824" Received: from unknown (HELO cn.fujitsu.com) ([10.167.33.5]) by heian.cn.fujitsu.com with ESMTP; 31 Jul 2018 14:29:50 +0800 Received: from G08CNEXCHPEKD03.g08.fujitsu.local (unknown [10.167.33.85]) by cn.fujitsu.com (Postfix) with ESMTP id B79524B69E25 for ; Tue, 31 Jul 2018 14:29:45 +0800 (CST) Received: from RHEL7U5Alpha_SERVER.g08.fujitsu.local (10.167.220.156) by G08CNEXCHPEKD03.g08.fujitsu.local (10.167.33.89) with Microsoft SMTP Server (TLS) id 14.3.399.0; Tue, 31 Jul 2018 14:29:45 +0800 From: Xiao Yang To: Date: Wed, 1 Aug 2018 13:50:20 +0800 Message-ID: <1533102620-30244-1-git-send-email-yangx.jy@cn.fujitsu.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 X-Originating-IP: [10.167.220.156] X-yoursite-MailScanner-ID: B79524B69E25.A831A X-yoursite-MailScanner: Found to be clean X-yoursite-MailScanner-From: yangx.jy@cn.fujitsu.com X-Spam-Status: No, score=2.5 required=7.0 tests=DATE_IN_FUTURE_12_24 autolearn=disabled version=3.4.0 X-Virus-Scanned: clamav-milter 0.99.2 at in-4.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Level: ** X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on in-4.smtp.seeweb.it Subject: [LTP] [PATCH] open_posix_testsuite/mmap_11-4: Skip this test on tmpfs 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" According to mmap(2) manpage, when you write data to such partial page after the end of the object, the data stays in the page cache even after the file is closed and unmapped, subsequent mappings always see the modified content on tmpfs. We just skip this test when running it on tmpfs. Signed-off-by: Xiao Yang --- .../conformance/interfaces/mmap/11-4.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mmap/11-4.c b/testcases/open_posix_testsuite/conformance/interfaces/mmap/11-4.c index 2b44815..a52b288 100644 --- a/testcases/open_posix_testsuite/conformance/interfaces/mmap/11-4.c +++ b/testcases/open_posix_testsuite/conformance/interfaces/mmap/11-4.c @@ -40,8 +40,11 @@ #include #include #include +#include #include "posixtest.h" +#define TYPE_TMPFS_MAGIC 0x01021994 + int main(void) { char tmpfname[256]; @@ -54,11 +57,23 @@ int main(void) pid_t child; int i, exit_val; + struct statfs buf; + page_size = sysconf(_SC_PAGE_SIZE); /* mmap will create a partial page */ len = page_size / 2; + if (statfs("/tmp", &buf)) { + printf("Error at statfs(): %s\n", strerror(errno)); + return PTS_UNRESOLVED; + } + + if (buf.f_type == TYPE_TMPFS_MAGIC) { + printf("From mmap(2) manpage, skip known bug on tmpfs\n"); + return PTS_UNTESTED; + } + snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_mmap_11_5_%d", getpid()); child = fork(); switch (child) {