From patchwork Fri Dec 28 07:03:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiao Yang X-Patchwork-Id: 1018829 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 ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43QMHN3JXNz9s7h for ; Thu, 27 Dec 2018 18:42:04 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 9FA163E7205 for ; Thu, 27 Dec 2018 08:41:55 +0100 (CET) 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 [217.194.8.3]) by picard.linux.it (Postfix) with ESMTP id 5A59F3E71BF for ; Thu, 27 Dec 2018 08:41:53 +0100 (CET) Received: from heian.cn.fujitsu.com (mail.cn.fujitsu.com [183.91.158.132]) by in-3.smtp.seeweb.it (Postfix) with ESMTP id 8B88A1A00ECF for ; Thu, 27 Dec 2018 08:41:47 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.56,404,1539619200"; d="scan'208";a="50754311" Received: from unknown (HELO cn.fujitsu.com) ([10.167.33.5]) by heian.cn.fujitsu.com with ESMTP; 27 Dec 2018 15:41:44 +0800 Received: from G08CNEXCHPEKD02.g08.fujitsu.local (unknown [10.167.33.83]) by cn.fujitsu.com (Postfix) with ESMTP id 309314B7987F for ; Thu, 27 Dec 2018 15:41:42 +0800 (CST) Received: from RHEL7U5GA_Intel64.g08.fujitsu.local (10.167.220.156) by G08CNEXCHPEKD02.g08.fujitsu.local (10.167.33.89) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 27 Dec 2018 15:41:41 +0800 From: Xiao Yang To: Date: Fri, 28 Dec 2018 15:03:24 +0800 Message-ID: <1545980604-19404-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: 309314B7987F.A883B 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-3.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Level: ** X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on in-3.smtp.seeweb.it Subject: [LTP] [PATCH] block/ltp_block_dev.c: Update tests for the newer kernel 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" The maximum major number is set to 511 since kernel commit 133d55c, so register_blkdev() with a major number grater than the maximum(511) will get failure instead of pass as expected. 1) Update tests for the newer behavior of register_blkdev(). 2) Add more major numbers(i.e. 511 and 512) to test. Note: It is possible that specified major numbers have been used by system, so we skip them if register_blkdev() returns EBUSY. Signed-off-by: Xiao Yang --- .../block/block_dev_kernel/ltp_block_dev.c | 47 +++++++++++++--------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/testcases/kernel/device-drivers/block/block_dev_kernel/ltp_block_dev.c b/testcases/kernel/device-drivers/block/block_dev_kernel/ltp_block_dev.c index d573085..8aeb6bb 100644 --- a/testcases/kernel/device-drivers/block/block_dev_kernel/ltp_block_dev.c +++ b/testcases/kernel/device-drivers/block/block_dev_kernel/ltp_block_dev.c @@ -52,7 +52,8 @@ MODULE_LICENSE("GPL"); * |--------------------------+---------+------------- * | [1..255] | valid | tc03 * |--------------------------+---------+------------- - * | [256..UINT_MAX] | valid | tc04, tc05 + * | [256..511] | valid | tc04 + * | [512..UINT_MAX] | invalid | tc05 * -----------+--------------------------+---------+------------- * name | [valid pointer to a zero | | * | terminated string] | valid | tc01, tc02 @@ -205,17 +206,24 @@ static int tc03(void) static int tc04(void) { int major, pass = 8; + unsigned int i, test_major[2] = {256, 511}; - prk_info("Test Case 4: register_blkdev() with major=256\n"); + prk_info("Test Case 4: register_blkdev() with major=256/511\n"); - major = register_blkdev(256, BLK_DEV_NAME); - prk_debug("major = %i\n", major); + for (i = 0; i < sizeof(test_major) / sizeof(unsigned int); i++) { + major = register_blkdev(test_major[i], BLK_DEV_NAME); + prk_debug("major = %i\n", major); - if (major == 0) { - unregister_blkdev(256, BLK_DEV_NAME); - } else { - pass = 0; - prk_debug("register_blkdev() failed with error %i\n", major); + if (major == 0) { + unregister_blkdev(test_major[i], BLK_DEV_NAME); + } else if (major == -EBUSY) { + prk_debug("device was busy, register_blkdev() with " + "major %u skipped\n", test_major[i]); + } else { + pass = 0; + prk_debug("register_blkdev() with major %u got " + "error %i\n", test_major[i], major); + } } prk_info("Test Case Result: %s\n", result_str(pass)); @@ -225,18 +233,21 @@ static int tc04(void) static int tc05(void) { int major, pass = 16; + unsigned int i, test_major[2] = {512, UINT_MAX}; - prk_info("Test Case 5: register_blkdev() with major=%u\n", UINT_MAX); + prk_info("Test Case 5: register_blkdev() with major=512/%u\n", UINT_MAX); - major = register_blkdev(UINT_MAX, BLK_DEV_NAME); - prk_debug("major = %i\n", major); + for (i = 0; i < sizeof(test_major) / sizeof(unsigned int); i++) { + major = register_blkdev(test_major[i], BLK_DEV_NAME); + prk_debug("major = %i\n", major); - if (major == 0) { - unregister_blkdev(UINT_MAX, BLK_DEV_NAME); - } else { - prk_debug("reg blkdev with major %d failed with error %i\n", - UINT_MAX, major); - pass = 0; + if (major >= 0) { + unregister_blkdev(test_major[i], BLK_DEV_NAME); + pass = 0; + } else { + prk_debug("register_blkdev() with major %u got " + "error %i\n", test_major[i], major); + } } prk_info("Test Case Result: %s\n", result_str(pass));