Fossil SCM
Improvements to the test-file-environment command.
Commit
fdc6af231531b9853a0171bd4a729666094c8c05dbd0d1ff37f35bce04295b6e
Parent
a59c8490dd76cc4…
1 file changed
+17
-8
+17
-8
| --- src/file.c | ||
| +++ src/file.c | ||
| @@ -83,11 +83,10 @@ | ||
| 83 | 83 | static struct fossilStat fileStat; |
| 84 | 84 | |
| 85 | 85 | /* |
| 86 | 86 | ** Fill stat buf with information received from stat() or lstat(). |
| 87 | 87 | ** lstat() is called on Unix if isWd is TRUE and allow-symlinks setting is on. |
| 88 | -** | |
| 89 | 88 | */ |
| 90 | 89 | static int fossil_stat( |
| 91 | 90 | const char *zFilename, /* name of file or directory to inspect. */ |
| 92 | 91 | struct fossilStat *buf, /* pointer to buffer where info should go. */ |
| 93 | 92 | int isWd /* non-zero to consider look at symlink itself. */ |
| @@ -964,11 +963,12 @@ | ||
| 964 | 963 | const char *zPath, |
| 965 | 964 | int raw, |
| 966 | 965 | int slash, |
| 967 | 966 | int reset |
| 968 | 967 | ){ |
| 969 | - char zBuf[100]; | |
| 968 | + char zBuf[200]; | |
| 969 | + char *z; | |
| 970 | 970 | Blob x; |
| 971 | 971 | memset(zBuf, 0, sizeof(zBuf)); |
| 972 | 972 | blob_zero(&x); |
| 973 | 973 | file_canonical_name(zPath, &x, slash); |
| 974 | 974 | fossil_print("%s[%s] -> [%s]\n", raw ? "RAW " : "", zPath, blob_buffer(&x)); |
| @@ -979,28 +979,36 @@ | ||
| 979 | 979 | memset(&testFileStat, 0, sizeof(struct fossilStat)); |
| 980 | 980 | rc = fossil_stat(zPath, &testFileStat, 0); |
| 981 | 981 | fossil_print(" stat_rc = %d\n", rc); |
| 982 | 982 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size); |
| 983 | 983 | fossil_print(" stat_size = %s\n", zBuf); |
| 984 | - sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_mtime); | |
| 984 | + z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", testFileStat.st_mtime); | |
| 985 | + sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", testFileStat.st_mtime, z); | |
| 986 | + fossil_free(z); | |
| 985 | 987 | fossil_print(" stat_mtime = %s\n", zBuf); |
| 986 | - fossil_print(" stat_mode = %d\n", testFileStat.st_mode); | |
| 988 | + fossil_print(" stat_mode = 0%o\n", testFileStat.st_mode); | |
| 987 | 989 | memset(&testFileStat, 0, sizeof(struct fossilStat)); |
| 988 | 990 | rc = fossil_stat(zPath, &testFileStat, 1); |
| 989 | 991 | fossil_print(" l_stat_rc = %d\n", rc); |
| 990 | 992 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size); |
| 991 | 993 | fossil_print(" l_stat_size = %s\n", zBuf); |
| 992 | - sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_mtime); | |
| 994 | + z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", testFileStat.st_mtime); | |
| 995 | + sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", testFileStat.st_mtime, z); | |
| 996 | + fossil_free(z); | |
| 993 | 997 | fossil_print(" l_stat_mtime = %s\n", zBuf); |
| 994 | - fossil_print(" l_stat_mode = %d\n", testFileStat.st_mode); | |
| 998 | + fossil_print(" l_stat_mode = 0%o\n", testFileStat.st_mode); | |
| 995 | 999 | }else{ |
| 1000 | + sqlite3_int64 iMtime; | |
| 996 | 1001 | if( reset ) resetStat(); |
| 997 | 1002 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_size(zPath)); |
| 998 | 1003 | fossil_print(" file_size = %s\n", zBuf); |
| 999 | - sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_mtime(zPath)); | |
| 1004 | + iMtime = file_wd_mtime(zPath); | |
| 1005 | + z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", iMtime); | |
| 1006 | + sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", iMtime, z); | |
| 1007 | + fossil_free(z); | |
| 1000 | 1008 | fossil_print(" file_mtime = %s\n", zBuf); |
| 1001 | - fossil_print(" file_mode = %d\n", file_wd_mode(zPath)); | |
| 1009 | + fossil_print(" file_mode = 0%o\n", file_wd_mode(zPath)); | |
| 1002 | 1010 | fossil_print(" file_isfile = %d\n", file_wd_isfile(zPath)); |
| 1003 | 1011 | fossil_print(" file_isfile_or_link = %d\n", file_wd_isfile_or_link(zPath)); |
| 1004 | 1012 | fossil_print(" file_islink = %d\n", file_wd_islink(zPath)); |
| 1005 | 1013 | fossil_print(" file_isexe = %d\n", file_wd_isexe(zPath)); |
| 1006 | 1014 | fossil_print(" file_isdir = %d\n", file_wd_isdir(zPath)); |
| @@ -1027,10 +1035,11 @@ | ||
| 1027 | 1035 | int slashFlag = find_option("slash",0,0)!=0; |
| 1028 | 1036 | int resetFlag = find_option("reset",0,0)!=0; |
| 1029 | 1037 | if( find_option("open-config", 0, 0)!=0 ){ |
| 1030 | 1038 | Th_OpenConfig(1); |
| 1031 | 1039 | } |
| 1040 | + db_find_and_open_repository(OPEN_ANY_SCHEMA, 0); | |
| 1032 | 1041 | fossil_print("filenames_are_case_sensitive() = %d\n", |
| 1033 | 1042 | filenames_are_case_sensitive()); |
| 1034 | 1043 | fossil_print("db_allow_symlinks_by_default() = %d\n", |
| 1035 | 1044 | db_allow_symlinks_by_default()); |
| 1036 | 1045 | fossil_print("db_allow_symlinks() = %d\n", db_allow_symlinks()); |
| 1037 | 1046 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -83,11 +83,10 @@ | |
| 83 | static struct fossilStat fileStat; |
| 84 | |
| 85 | /* |
| 86 | ** Fill stat buf with information received from stat() or lstat(). |
| 87 | ** lstat() is called on Unix if isWd is TRUE and allow-symlinks setting is on. |
| 88 | ** |
| 89 | */ |
| 90 | static int fossil_stat( |
| 91 | const char *zFilename, /* name of file or directory to inspect. */ |
| 92 | struct fossilStat *buf, /* pointer to buffer where info should go. */ |
| 93 | int isWd /* non-zero to consider look at symlink itself. */ |
| @@ -964,11 +963,12 @@ | |
| 964 | const char *zPath, |
| 965 | int raw, |
| 966 | int slash, |
| 967 | int reset |
| 968 | ){ |
| 969 | char zBuf[100]; |
| 970 | Blob x; |
| 971 | memset(zBuf, 0, sizeof(zBuf)); |
| 972 | blob_zero(&x); |
| 973 | file_canonical_name(zPath, &x, slash); |
| 974 | fossil_print("%s[%s] -> [%s]\n", raw ? "RAW " : "", zPath, blob_buffer(&x)); |
| @@ -979,28 +979,36 @@ | |
| 979 | memset(&testFileStat, 0, sizeof(struct fossilStat)); |
| 980 | rc = fossil_stat(zPath, &testFileStat, 0); |
| 981 | fossil_print(" stat_rc = %d\n", rc); |
| 982 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size); |
| 983 | fossil_print(" stat_size = %s\n", zBuf); |
| 984 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_mtime); |
| 985 | fossil_print(" stat_mtime = %s\n", zBuf); |
| 986 | fossil_print(" stat_mode = %d\n", testFileStat.st_mode); |
| 987 | memset(&testFileStat, 0, sizeof(struct fossilStat)); |
| 988 | rc = fossil_stat(zPath, &testFileStat, 1); |
| 989 | fossil_print(" l_stat_rc = %d\n", rc); |
| 990 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size); |
| 991 | fossil_print(" l_stat_size = %s\n", zBuf); |
| 992 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_mtime); |
| 993 | fossil_print(" l_stat_mtime = %s\n", zBuf); |
| 994 | fossil_print(" l_stat_mode = %d\n", testFileStat.st_mode); |
| 995 | }else{ |
| 996 | if( reset ) resetStat(); |
| 997 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_size(zPath)); |
| 998 | fossil_print(" file_size = %s\n", zBuf); |
| 999 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_mtime(zPath)); |
| 1000 | fossil_print(" file_mtime = %s\n", zBuf); |
| 1001 | fossil_print(" file_mode = %d\n", file_wd_mode(zPath)); |
| 1002 | fossil_print(" file_isfile = %d\n", file_wd_isfile(zPath)); |
| 1003 | fossil_print(" file_isfile_or_link = %d\n", file_wd_isfile_or_link(zPath)); |
| 1004 | fossil_print(" file_islink = %d\n", file_wd_islink(zPath)); |
| 1005 | fossil_print(" file_isexe = %d\n", file_wd_isexe(zPath)); |
| 1006 | fossil_print(" file_isdir = %d\n", file_wd_isdir(zPath)); |
| @@ -1027,10 +1035,11 @@ | |
| 1027 | int slashFlag = find_option("slash",0,0)!=0; |
| 1028 | int resetFlag = find_option("reset",0,0)!=0; |
| 1029 | if( find_option("open-config", 0, 0)!=0 ){ |
| 1030 | Th_OpenConfig(1); |
| 1031 | } |
| 1032 | fossil_print("filenames_are_case_sensitive() = %d\n", |
| 1033 | filenames_are_case_sensitive()); |
| 1034 | fossil_print("db_allow_symlinks_by_default() = %d\n", |
| 1035 | db_allow_symlinks_by_default()); |
| 1036 | fossil_print("db_allow_symlinks() = %d\n", db_allow_symlinks()); |
| 1037 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -83,11 +83,10 @@ | |
| 83 | static struct fossilStat fileStat; |
| 84 | |
| 85 | /* |
| 86 | ** Fill stat buf with information received from stat() or lstat(). |
| 87 | ** lstat() is called on Unix if isWd is TRUE and allow-symlinks setting is on. |
| 88 | */ |
| 89 | static int fossil_stat( |
| 90 | const char *zFilename, /* name of file or directory to inspect. */ |
| 91 | struct fossilStat *buf, /* pointer to buffer where info should go. */ |
| 92 | int isWd /* non-zero to consider look at symlink itself. */ |
| @@ -964,11 +963,12 @@ | |
| 963 | const char *zPath, |
| 964 | int raw, |
| 965 | int slash, |
| 966 | int reset |
| 967 | ){ |
| 968 | char zBuf[200]; |
| 969 | char *z; |
| 970 | Blob x; |
| 971 | memset(zBuf, 0, sizeof(zBuf)); |
| 972 | blob_zero(&x); |
| 973 | file_canonical_name(zPath, &x, slash); |
| 974 | fossil_print("%s[%s] -> [%s]\n", raw ? "RAW " : "", zPath, blob_buffer(&x)); |
| @@ -979,28 +979,36 @@ | |
| 979 | memset(&testFileStat, 0, sizeof(struct fossilStat)); |
| 980 | rc = fossil_stat(zPath, &testFileStat, 0); |
| 981 | fossil_print(" stat_rc = %d\n", rc); |
| 982 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size); |
| 983 | fossil_print(" stat_size = %s\n", zBuf); |
| 984 | z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", testFileStat.st_mtime); |
| 985 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", testFileStat.st_mtime, z); |
| 986 | fossil_free(z); |
| 987 | fossil_print(" stat_mtime = %s\n", zBuf); |
| 988 | fossil_print(" stat_mode = 0%o\n", testFileStat.st_mode); |
| 989 | memset(&testFileStat, 0, sizeof(struct fossilStat)); |
| 990 | rc = fossil_stat(zPath, &testFileStat, 1); |
| 991 | fossil_print(" l_stat_rc = %d\n", rc); |
| 992 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size); |
| 993 | fossil_print(" l_stat_size = %s\n", zBuf); |
| 994 | z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", testFileStat.st_mtime); |
| 995 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", testFileStat.st_mtime, z); |
| 996 | fossil_free(z); |
| 997 | fossil_print(" l_stat_mtime = %s\n", zBuf); |
| 998 | fossil_print(" l_stat_mode = 0%o\n", testFileStat.st_mode); |
| 999 | }else{ |
| 1000 | sqlite3_int64 iMtime; |
| 1001 | if( reset ) resetStat(); |
| 1002 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_size(zPath)); |
| 1003 | fossil_print(" file_size = %s\n", zBuf); |
| 1004 | iMtime = file_wd_mtime(zPath); |
| 1005 | z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", iMtime); |
| 1006 | sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", iMtime, z); |
| 1007 | fossil_free(z); |
| 1008 | fossil_print(" file_mtime = %s\n", zBuf); |
| 1009 | fossil_print(" file_mode = 0%o\n", file_wd_mode(zPath)); |
| 1010 | fossil_print(" file_isfile = %d\n", file_wd_isfile(zPath)); |
| 1011 | fossil_print(" file_isfile_or_link = %d\n", file_wd_isfile_or_link(zPath)); |
| 1012 | fossil_print(" file_islink = %d\n", file_wd_islink(zPath)); |
| 1013 | fossil_print(" file_isexe = %d\n", file_wd_isexe(zPath)); |
| 1014 | fossil_print(" file_isdir = %d\n", file_wd_isdir(zPath)); |
| @@ -1027,10 +1035,11 @@ | |
| 1035 | int slashFlag = find_option("slash",0,0)!=0; |
| 1036 | int resetFlag = find_option("reset",0,0)!=0; |
| 1037 | if( find_option("open-config", 0, 0)!=0 ){ |
| 1038 | Th_OpenConfig(1); |
| 1039 | } |
| 1040 | db_find_and_open_repository(OPEN_ANY_SCHEMA, 0); |
| 1041 | fossil_print("filenames_are_case_sensitive() = %d\n", |
| 1042 | filenames_are_case_sensitive()); |
| 1043 | fossil_print("db_allow_symlinks_by_default() = %d\n", |
| 1044 | db_allow_symlinks_by_default()); |
| 1045 | fossil_print("db_allow_symlinks() = %d\n", db_allow_symlinks()); |
| 1046 |