mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
sandbox: Add a way to access persistent test files
Some pytests create files in the persistent-data directory. It is useful to be able to access these files in C tests. Add a function which can locate a file given its leaf name, using the environment variable set up in test/py/conftest.py Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
8d6337e691
commit
e2d22f7822
2 changed files with 34 additions and 0 deletions
|
@ -258,6 +258,30 @@ int os_unmap(void *buf, int size)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int os_persistent_file(char *buf, int maxsize, const char *fname)
|
||||||
|
{
|
||||||
|
const char *dirname = getenv("U_BOOT_PERSISTENT_DATA_DIR");
|
||||||
|
char *ptr;
|
||||||
|
int len;
|
||||||
|
|
||||||
|
len = strlen(fname) + (dirname ? strlen(dirname) + 1 : 0) + 1;
|
||||||
|
if (len > maxsize)
|
||||||
|
return -ENOSPC;
|
||||||
|
|
||||||
|
ptr = buf;
|
||||||
|
if (dirname) {
|
||||||
|
strcpy(ptr, dirname);
|
||||||
|
ptr += strlen(dirname);
|
||||||
|
*ptr++ = '/';
|
||||||
|
}
|
||||||
|
strcpy(ptr, fname);
|
||||||
|
|
||||||
|
if (access(buf, F_OK) == -1)
|
||||||
|
return -ENOENT;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Restore tty state when we exit */
|
/* Restore tty state when we exit */
|
||||||
static struct termios orig_term;
|
static struct termios orig_term;
|
||||||
static bool term_setup;
|
static bool term_setup;
|
||||||
|
|
10
include/os.h
10
include/os.h
|
@ -98,6 +98,16 @@ int os_close(int fd);
|
||||||
*/
|
*/
|
||||||
int os_unlink(const char *pathname);
|
int os_unlink(const char *pathname);
|
||||||
|
|
||||||
|
/** os_persistent_fname() - Find the path to a test file
|
||||||
|
*
|
||||||
|
* @buf: Buffer to hold path
|
||||||
|
* @maxsize: Maximum size of buffer
|
||||||
|
* @fname: Leaf filename to find
|
||||||
|
* Returns: 0 on success, -ENOENT if file is not found, -ENOSPC if the buffer is
|
||||||
|
* too small
|
||||||
|
*/
|
||||||
|
int os_persistent_file(char *buf, int maxsize, const char *fname);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* os_exit() - access to the OS exit() system call
|
* os_exit() - access to the OS exit() system call
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue