From patchwork Mon May 31 15:59:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sunil Pandey X-Patchwork-Id: 43641 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D2A4C384783D; Mon, 31 May 2021 15:59:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D2A4C384783D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1622476782; bh=WLyZHuz1bZXh5qm2dzWEP+L8A2IFdI2wKhSkLuCmQeY=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=KnYSU9iCyAPPTp//yEofXbNPsDCIlHaalfPtcmTCS/XJ1ivEayoBMz7+ZZdtG6F1S Ivi+OAlIzvm53nhGyQ+0+GSiLnrRTzt1I0V1G9dJjvWBO6WG6QYAcgrA+RWD+U/Sol dgrcC4mc0NtqjYP7iOFxh77z1Ue4WcaTLxsz//k0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by sourceware.org (Postfix) with ESMTPS id 36F2A384F010 for ; Mon, 31 May 2021 15:59:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 36F2A384F010 IronPort-SDR: tPhO4SHVWlp+cMPRes2muagE+T/c43Sn5PBDolDRPXksr1Oa+vvskK7Cj8bi4xKAwmnbGMwjMG ppoTGYVy+Rug== X-IronPort-AV: E=McAfee;i="6200,9189,10001"; a="200361027" X-IronPort-AV: E=Sophos;i="5.83,237,1616482800"; d="scan'208";a="200361027" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2021 08:59:38 -0700 IronPort-SDR: oiazDDNWNkUDZw/jDiQZJkGOgsau9h4hI4cz9SEdYEOuy8ICeXia5ahu6V9E/HKC1DjoZeWOYP kO5rWOijxBEQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,237,1616482800"; d="scan'208";a="482139352" Received: from scymds01.sc.intel.com ([10.148.94.138]) by fmsmga002.fm.intel.com with ESMTP; 31 May 2021 08:59:38 -0700 Received: from gskx-1.sc.intel.com (gskx-1.sc.intel.com [172.25.149.211]) by scymds01.sc.intel.com with ESMTP id 14VFxcB6013156; Mon, 31 May 2021 08:59:38 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v2] Improve test coverage of strlen function Date: Mon, 31 May 2021 08:59:38 -0700 Message-Id: <20210531155938.421952-1-skpgkp2@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-Spam-Status: No, score=-6.0 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 following conditions. - String starts with different alignments and ends at the page boundary with less than 64 byte length. - String starts with different alignments and cross page boundary with fixed length. --- 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; }