Message ID | 20210531180812.501625-1-skpgkp2@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v3] Improve test coverage of strlen function | expand |
On Mon, May 31, 2021 at 11:08 AM Sunil K Pandey <skpgkp2@gmail.com> wrote: > > 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. > --- > 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; > } > -- > 2.31.1 > LGTM. Reviewed-by: H.J. Lu <hjl.tools@gmail.com> Thanks.
On Mon, May 31, 2021 at 11:21:50AM -0700, H.J. Lu wrote: > On Mon, May 31, 2021 at 11:08 AM Sunil K Pandey <skpgkp2@gmail.com> wrote: > > > > 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. > > --- > > 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; > > } > > -- > > 2.31.1 > > > > LGTM. > > Reviewed-by: H.J. Lu <hjl.tools@gmail.com> > Hi Sunil, I am checking it in for you. Please get an account on sourceware.org: https://sourceware.org/ and use me as sponsor. Thanks. H.J.
Hi, I am an Intel employee, working on glibc for x86. I have an account(skpgkp2) on sourceware.org. Can someone please tell me how to get write access to glibc git repo. Thanks, Sunil Pandey On Wed, Jun 2, 2021 at 5:40 AM H.J. Lu <hjl.tools@gmail.com> wrote: > On Mon, May 31, 2021 at 11:21:50AM -0700, H.J. Lu wrote: > > On Mon, May 31, 2021 at 11:08 AM Sunil K Pandey <skpgkp2@gmail.com> > wrote: > > > > > > 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. > > > --- > > > 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; > > > } > > > -- > > > 2.31.1 > > > > > > > LGTM. > > > > Reviewed-by: H.J. Lu <hjl.tools@gmail.com> > > > > Hi Sunil, > > I am checking it in for you. Please get an account on sourceware.org: > > https://sourceware.org/ > > and use me as sponsor. > > Thanks. > > H.J. >
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; }