From patchwork Mon May 31 18:08:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sunil Pandey X-Patchwork-Id: 1485754 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=libc-alpha-bounces@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=U4l+yWUR; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Fv3F030T2z9sVb for ; Tue, 1 Jun 2021 04:08:20 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 40E7D3847831; Mon, 31 May 2021 18:08:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 40E7D3847831 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1622484497; bh=SkdJDDD9lPm7Ptr3xA4Spe+7aXc1nVAWOs+pecCFXBE=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=U4l+yWURAJiGHiV2bBxf9cDvGcaJVX62yMgrLB+QdEM8z4aCYhiyM1NWumzqpXxkQ zyFIGtFUmui3OvGnJ+U+bFzqppLVALigO6SmhCWYppWrERkQwNATDHtRZE27c8qjnR us3VidfCuyw8YvvTYq+w6ZAlIgzJa+nUhHoQpEo0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by sourceware.org (Postfix) with ESMTPS id 99B92385742B for ; Mon, 31 May 2021 18:08:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 99B92385742B IronPort-SDR: CXObn0zF+XJ0FM7ytzTbD/wneEjI15Mly0Tus3wyUDSqchw+lcgA2YuTYhbkarJ4DtpmSObWtF kV94gVC1NjMg== X-IronPort-AV: E=McAfee;i="6200,9189,10001"; a="267278305" X-IronPort-AV: E=Sophos;i="5.83,238,1616482800"; d="scan'208";a="267278305" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2021 11:08:12 -0700 IronPort-SDR: LjZ/BFiKYPOyUZYebOQY+6zAk1YiSXJbaPMpa7H4NE4qC5hftxJiHUGY4oWte3wIDXW2QqEAHY YDraLJYdF4+Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,238,1616482800"; d="scan'208";a="445049513" Received: from scymds02.sc.intel.com ([10.82.73.244]) by orsmga008.jf.intel.com with ESMTP; 31 May 2021 11:08:12 -0700 Received: from gskx-1.sc.intel.com (gskx-1.sc.intel.com [172.25.149.211]) by scymds02.sc.intel.com with ESMTP id 14VI8CLD024473; Mon, 31 May 2021 11:08:12 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3] Improve test coverage of strlen function Date: Mon, 31 May 2021 11:08:12 -0700 Message-Id: <20210531180812.501625-1-skpgkp2@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-Spam-Status: No, score=-5.7 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, FORGED_GMAIL_RCVD, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, HK_RANDOM_ENVFROM, HK_RANDOM_FROM, KAM_DMARC_NONE, KAM_DMARC_STATUS, NML_ADSP_CUSTOM_MED, SPF_HELO_NONE, SPF_SOFTFAIL, SPOOFED_FREEMAIL, SPOOF_GMAIL_MID, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Sunil K Pandey via Libc-alpha From: Sunil Pandey Reply-To: Sunil K Pandey Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" This patch covers the following conditions: - Strings start with different alignments and end at the page boundary with less than 64 byte length. - Strings starts with different alignments and cross page boundary with fixed length. Reviewed-by: H.J. Lu --- string/test-strlen.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/string/test-strlen.c b/string/test-strlen.c index 6e67d1f1f1..c9a7afb339 100644 --- a/string/test-strlen.c +++ b/string/test-strlen.c @@ -79,7 +79,7 @@ do_test (size_t align, size_t len) { size_t i; - align &= 63; + align &= (getpagesize () / sizeof (CHAR)) - 1; if (align + sizeof (CHAR) * len >= page_size) return; @@ -160,6 +160,19 @@ test_main (void) do_test (sizeof (CHAR) * i, (size_t)((1 << i) / 1.5)); } + /* Test strings near page boundary */ + + size_t maxlength = 64 / sizeof (CHAR) - 1; + size_t pagesize = getpagesize () / sizeof (CHAR); + + for (i = maxlength ; i > 1; --i) + { + /* String stays on the same page. */ + do_test (pagesize - i, i - 1); + /* String crosses page boundary. */ + do_test (pagesize - i, maxlength); + } + do_random_tests (); return ret; }