mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +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;
|
||||
}
|
||||
|
||||
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 */
|
||||
static struct termios orig_term;
|
||||
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);
|
||||
|
||||
/** 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
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue