diff options
author | 2011-01-01 21:04:41 -0500 | |
---|---|---|
committer | 2011-01-01 21:04:41 -0500 | |
commit | eaa748b1842ecf92248662623aa41cc239b25bb2 (patch) | |
tree | 5e414e71e2abdf091b143537b3104ff67a8f4aa7 | |
parent | tests: add a bunch more feasible errno values (diff) | |
download | sandbox-eaa748b1842ecf92248662623aa41cc239b25bb2.tar.gz sandbox-eaa748b1842ecf92248662623aa41cc239b25bb2.tar.bz2 sandbox-eaa748b1842ecf92248662623aa41cc239b25bb2.zip |
tests: make defaults for fds saner
Let the default mode for files be 0777 rather than 0 so that the default
creation of files actually works.
Also make the flags part of a dirfd filename actually optional.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r-- | tests/test-skel-0.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/tests/test-skel-0.c b/tests/test-skel-0.c index 0907e96..b5771d7 100644 --- a/tests/test-skel-0.c +++ b/tests/test-skel-0.c @@ -9,6 +9,13 @@ const char *color_red = "\033[31;01m"; # define CONFIG 1 #endif +static bool _strtoul(const char *sul, unsigned long *ul) +{ + char *e; + *ul = strtoul(sul, &e, 0); + return (*e == '\0'); +} + static int _get_flags(const char *str_flags, const value_pair flags[]) { const char *delim = "|"; @@ -42,6 +49,8 @@ int f_get_flags(const char *str_flags) PAIR(O_WRONLY) { } }; + if (!str_flags) + return O_CREAT | O_RDWR; return _get_flags(str_flags, flags); } @@ -72,8 +81,9 @@ mode_t sscanf_mode_t(const char *str_mode) * sscanf() into it otherwise we might smash the stack. */ int mode; + /* Default to full access. */ if (!str_mode) - return 0; + return 0777; sscanf(str_mode, "%i", &mode); return (mode_t)mode; } @@ -103,8 +113,11 @@ int at_get_fd(const char *str_dirfd) str_path = strtok(str, ":"); str_flags = strtok(NULL, ":"); - if (str_flags == NULL) - return atoi(str_dirfd); + if (str_flags == NULL) { + unsigned long dirfd; + if (_strtoul(str_dirfd, &dirfd)) + return dirfd; + } str_mode = strtok(NULL, ":"); return open(str_path, f_get_flags(str_flags), sscanf_mode_t(str_mode)); |