summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authortrawick <trawick@13f79535-47bb-0310-9956-ffa450edef68>2004-05-04 00:46:04 +0000
committertrawick <trawick@13f79535-47bb-0310-9956-ffa450edef68>2004-05-04 00:46:04 +0000
commitc093d95b035fc3bbc324873f681a885ff4dde3b4 (patch)
tree3ac2a70f55b64025332c52e7575f448c0839a355 /test
parent41325f96404b0acbb33c438b00cdd0ac81ce4b62 (diff)
downloadlibapr-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.c21
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)