diff options
author | trawick <trawick@13f79535-47bb-0310-9956-ffa450edef68> | 2004-05-04 00:46:04 +0000 |
---|---|---|
committer | trawick <trawick@13f79535-47bb-0310-9956-ffa450edef68> | 2004-05-04 00:46:04 +0000 |
commit | c093d95b035fc3bbc324873f681a885ff4dde3b4 (patch) | |
tree | 3ac2a70f55b64025332c52e7575f448c0839a355 /test | |
parent | 41325f96404b0acbb33c438b00cdd0ac81ce4b62 (diff) | |
download | libapr-c093d95b035fc3bbc324873f681a885ff4dde3b4.tar.gz |
Fix sign error in apr_file_seek().
Submitted by: Greg Hudson <ghudson MIT.EDU>
Reviewed by: Jeff Trawick
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/branches/APR_0_9_BRANCH@65087 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test')
-rw-r--r-- | test/testfile.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/testfile.c b/test/testfile.c index 1305efc10..ce02faf7b 100644 --- a/test/testfile.c +++ b/test/testfile.c @@ -228,6 +228,27 @@ static void test_seek(CuTest *tc) CuAssertStrEquals(tc, TESTSTR + 5, str); apr_file_close(filetest); + + /* Test for regression of sign error bug with SEEK_END and + buffered files. */ + rv = apr_file_open(&filetest, FILENAME, + APR_READ | APR_BUFFERED, + APR_UREAD | APR_UWRITE | APR_GREAD, p); + apr_assert_success(tc, "Open test file " FILENAME, rv); + + offset = -5; + rv = apr_file_seek(filetest, SEEK_END, &offset); + CuAssertIntEquals(tc, APR_SUCCESS, rv); + CuAssertIntEquals(tc, strlen(TESTSTR) - 5, nbytes); + + memset(str, 0, nbytes + 1); + nbytes = 256; + rv = apr_file_read(filetest, str, &nbytes); + CuAssertIntEquals(tc, APR_SUCCESS, rv); + CuAssertIntEquals(tc, 5, nbytes); + CuAssertStrEquals(tc, TESTSTR + strlen(TESTSTR) - 5, str); + + apr_file_close(filetest); } static void test_userdata_set(CuTest *tc) |