diff options
author | hongbotian <hongbo.tianhongbo@huawei.com> | 2015-11-30 03:10:21 -0500 |
---|---|---|
committer | hongbotian <hongbo.tianhongbo@huawei.com> | 2015-11-30 03:10:21 -0500 |
commit | c0b7206652b2852bc574694e7ba07ba1c2acdc00 (patch) | |
tree | 5cb95cb0e19e03610525903df46279df2c3b7eb1 /rubbos/app/httpd-2.0.64/srclib/apr/test/testfileinfo.c | |
parent | b6d3d6e668b793220f2d3af1bc3e828553dc3fe6 (diff) |
delete app
Change-Id: Id4c572809969ebe89e946e88063eaed262cff3f2
Signed-off-by: hongbotian <hongbo.tianhongbo@huawei.com>
Diffstat (limited to 'rubbos/app/httpd-2.0.64/srclib/apr/test/testfileinfo.c')
-rw-r--r-- | rubbos/app/httpd-2.0.64/srclib/apr/test/testfileinfo.c | 263 |
1 files changed, 0 insertions, 263 deletions
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/test/testfileinfo.c b/rubbos/app/httpd-2.0.64/srclib/apr/test/testfileinfo.c deleted file mode 100644 index 00ad9631..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/test/testfileinfo.c +++ /dev/null @@ -1,263 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "apr_file_io.h" -#include "apr_file_info.h" -#include "apr_strings.h" -#include "apr_errno.h" -#include "apr_general.h" -#include "apr_poll.h" -#include "apr_lib.h" -#include "test_apr.h" - -#define FILENAME "data/file_datafile.txt" -#define NEWFILENAME "data/new_datafile.txt" -#define NEWFILEDATA "This is new text in a new file." - -static const struct view_fileinfo -{ - apr_int32_t bits; - char *description; -} vfi[] = { - {APR_FINFO_MTIME, "MTIME"}, - {APR_FINFO_CTIME, "CTIME"}, - {APR_FINFO_ATIME, "ATIME"}, - {APR_FINFO_SIZE, "SIZE"}, - {APR_FINFO_DEV, "DEV"}, - {APR_FINFO_INODE, "INODE"}, - {APR_FINFO_NLINK, "NLINK"}, - {APR_FINFO_TYPE, "TYPE"}, - {APR_FINFO_USER, "USER"}, - {APR_FINFO_GROUP, "GROUP"}, - {APR_FINFO_UPROT, "UPROT"}, - {APR_FINFO_GPROT, "GPROT"}, - {APR_FINFO_WPROT, "WPROT"}, - {0, NULL} -}; - -static void finfo_equal(CuTest *tc, apr_finfo_t f1, apr_finfo_t f2) -{ - /* Minimum supported flags across all platforms (APR_FINFO_MIN) */ - CuAssert(tc, "apr_stat and apr_getfileinfo must return APR_FINFO_TYPE", - (f1.valid & f2.valid & APR_FINFO_TYPE)); - CuAssert(tc, "apr_stat and apr_getfileinfo differ in filetype", - f1.filetype == f2.filetype); - CuAssert(tc, "apr_stat and apr_getfileinfo must return APR_FINFO_SIZE", - (f1.valid & f2.valid & APR_FINFO_SIZE)); - CuAssert(tc, "apr_stat and apr_getfileinfo differ in size", - f1.size == f2.size); - CuAssert(tc, "apr_stat and apr_getfileinfo must return APR_FINFO_ATIME", - (f1.valid & f2.valid & APR_FINFO_ATIME)); - CuAssert(tc, "apr_stat and apr_getfileinfo differ in atime", - f1.atime == f2.atime); - CuAssert(tc, "apr_stat and apr_getfileinfo must return APR_FINFO_MTIME", - (f1.valid & f2.valid & APR_FINFO_MTIME)); - CuAssert(tc, "apr_stat and apr_getfileinfo differ in mtime", - f1.mtime == f2.mtime); - CuAssert(tc, "apr_stat and apr_getfileinfo must return APR_FINFO_CTIME", - (f1.valid & f2.valid & APR_FINFO_CTIME)); - CuAssert(tc, "apr_stat and apr_getfileinfo differ in ctime", - f1.ctime == f2.ctime); - - if (f1.valid & f2.valid & APR_FINFO_NAME) - CuAssert(tc, "apr_stat and apr_getfileinfo differ in name", - !strcmp(f1.name, f2.name)); - if (f1.fname && f2.fname) - CuAssert(tc, "apr_stat and apr_getfileinfo differ in fname", - !strcmp(f1.fname, f2.fname)); - - /* Additional supported flags not supported on all platforms */ - if (f1.valid & f2.valid & APR_FINFO_USER) - CuAssert(tc, "apr_stat and apr_getfileinfo differ in user", - !apr_uid_compare(f1.user, f2.user)); - if (f1.valid & f2.valid & APR_FINFO_GROUP) - CuAssert(tc, "apr_stat and apr_getfileinfo differ in group", - !apr_gid_compare(f1.group, f2.group)); - if (f1.valid & f2.valid & APR_FINFO_INODE) - CuAssert(tc, "apr_stat and apr_getfileinfo differ in inode", - f1.inode == f2.inode); - if (f1.valid & f2.valid & APR_FINFO_DEV) - CuAssert(tc, "apr_stat and apr_getfileinfo differ in device", - f1.device == f2.device); - if (f1.valid & f2.valid & APR_FINFO_NLINK) - CuAssert(tc, "apr_stat and apr_getfileinfo differ in nlink", - f1.nlink == f2.nlink); - if (f1.valid & f2.valid & APR_FINFO_CSIZE) - CuAssert(tc, "apr_stat and apr_getfileinfo differ in csize", - f1.csize == f2.csize); - if (f1.valid & f2.valid & APR_FINFO_PROT) - CuAssert(tc, "apr_stat and apr_getfileinfo differ in protection", - f1.protection == f2.protection); -} - -static void test_info_get(CuTest *tc) -{ - apr_file_t *thefile; - apr_finfo_t finfo; - apr_status_t rv; - - rv = apr_file_open(&thefile, FILENAME, APR_READ, APR_OS_DEFAULT, p); - CuAssertIntEquals(tc, APR_SUCCESS, rv); - - rv = apr_file_info_get(&finfo, APR_FINFO_NORM, thefile); - if (rv == APR_INCOMPLETE) { - char *str; - int i; - str = apr_pstrdup(p, "APR_INCOMPLETE: Missing "); - for (i = 0; vfi[i].bits; ++i) { - if (vfi[i].bits & ~finfo.valid) { - str = apr_pstrcat(p, str, vfi[i].description, " ", NULL); - } - } - CuFail(tc, str); - } - CuAssertIntEquals(tc, APR_SUCCESS, rv); - apr_file_close(thefile); -} - -static void test_stat(CuTest *tc) -{ - apr_finfo_t finfo; - apr_status_t rv; - - rv = apr_stat(&finfo, FILENAME, APR_FINFO_NORM, p); - if (rv == APR_INCOMPLETE) { - char *str; - int i; - str = apr_pstrdup(p, "APR_INCOMPLETE: Missing "); - for (i = 0; vfi[i].bits; ++i) { - if (vfi[i].bits & ~finfo.valid) { - str = apr_pstrcat(p, str, vfi[i].description, " ", NULL); - } - } - CuFail(tc, str); - } - CuAssertIntEquals(tc, APR_SUCCESS, rv); -} - -static void test_stat_eq_finfo(CuTest *tc) -{ - apr_file_t *thefile; - apr_finfo_t finfo; - apr_finfo_t stat_finfo; - apr_status_t rv; - - rv = apr_file_open(&thefile, FILENAME, APR_READ, APR_OS_DEFAULT, p); - CuAssertIntEquals(tc, APR_SUCCESS, rv); - rv = apr_file_info_get(&finfo, APR_FINFO_NORM, thefile); - - /* Opening the file may have toggled the atime member (time last - * accessed), so fetch our apr_stat() after getting the fileinfo - * of the open file... - */ - rv = apr_stat(&stat_finfo, FILENAME, APR_FINFO_NORM, p); - CuAssertIntEquals(tc, APR_SUCCESS, rv); - - apr_file_close(thefile); - - finfo_equal(tc, stat_finfo, finfo); -} - -static void test_buffered_write_size(CuTest *tc) -{ - const apr_size_t data_len = strlen(NEWFILEDATA); - apr_file_t *thefile; - apr_finfo_t finfo; - apr_status_t rv; - apr_size_t bytes; - - rv = apr_file_open(&thefile, NEWFILENAME, - APR_READ | APR_WRITE | APR_CREATE | APR_TRUNCATE - | APR_BUFFERED | APR_DELONCLOSE, - APR_OS_DEFAULT, p); - apr_assert_success(tc, "open file", rv); - - /* A funny thing happened to me the other day: I wrote something - * into a buffered file, then asked for its size using - * apr_file_info_get; and guess what? The size was 0! That's not a - * nice way to behave. - */ - bytes = data_len; - rv = apr_file_write(thefile, NEWFILEDATA, &bytes); - apr_assert_success(tc, "write file contents", rv); - CuAssertTrue(tc, data_len == bytes); - - rv = apr_file_info_get(&finfo, APR_FINFO_SIZE, thefile); - apr_assert_success(tc, "get file size", rv); - CuAssertTrue(tc, bytes == (apr_size_t) finfo.size); - apr_file_close(thefile); -} - -static void test_mtime_set(CuTest *tc) -{ - apr_file_t *thefile; - apr_finfo_t finfo; - apr_time_t epoch = 0; - apr_status_t rv; - - /* This test sort of depends on the system clock being at least - * marginally ccorrect; We'll be setting the modification time to - * the epoch. - */ - rv = apr_file_open(&thefile, NEWFILENAME, - APR_READ | APR_WRITE | APR_CREATE | APR_TRUNCATE - | APR_BUFFERED | APR_DELONCLOSE, - APR_OS_DEFAULT, p); - apr_assert_success(tc, "open file", rv); - - /* Check that the current mtime is not the epoch */ - rv = apr_stat(&finfo, NEWFILENAME, APR_FINFO_MTIME, p); - if (rv == APR_INCOMPLETE) { - char *str; - int i; - str = apr_pstrdup(p, "APR_INCOMPLETE: Missing "); - for (i = 0; vfi[i].bits; ++i) { - if (vfi[i].bits & ~finfo.valid) { - str = apr_pstrcat(p, str, vfi[i].description, " ", NULL); - } - } - CuFail(tc, str); - } - apr_assert_success(tc, "get initial mtime", rv); - CuAssertTrue(tc, finfo.mtime != epoch); - - /* Reset the mtime to the epoch and verify the result. - * Note: we blindly assume that if the first apr_stat succeeded, - * the second one will, too. - */ - rv = apr_file_mtime_set(NEWFILENAME, epoch, p); - apr_assert_success(tc, "set mtime", rv); - - rv = apr_stat(&finfo, NEWFILENAME, APR_FINFO_MTIME, p); - apr_assert_success(tc, "get modified mtime", rv); - CuAssertTrue(tc, finfo.mtime == epoch); - - apr_file_close(thefile); -} - -CuSuite *testfileinfo(void) -{ - CuSuite *suite = CuSuiteNew("File Info"); - - SUITE_ADD_TEST(suite, test_info_get); - SUITE_ADD_TEST(suite, test_stat); - SUITE_ADD_TEST(suite, test_stat_eq_finfo); - SUITE_ADD_TEST(suite, test_buffered_write_size); - SUITE_ADD_TEST(suite, test_mtime_set); - - return suite; -} - |