add Test_File_exists()
Tests the following functions : * File_exists() * Directory_exists() * Extract_filename() * For_each_directory_entry() * Remove_path()
This commit is contained in:
parent
1b28ed0909
commit
3d53a91046
@ -224,6 +224,86 @@ int Test_Read_Write_bytes(void)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* data structure for For_each_directory_entry() callback
|
||||
*/
|
||||
struct dir_callback_data
|
||||
{
|
||||
char * filename;
|
||||
int result;
|
||||
};
|
||||
|
||||
/**
|
||||
* callback for For_each_directory_entry()
|
||||
*/
|
||||
static void directory_callback(void * pdata, const char * filename, const word * unicode_filename, byte is_file, byte is_directory, byte is_hidden)
|
||||
{
|
||||
struct dir_callback_data * data = (struct dir_callback_data *)pdata;
|
||||
|
||||
GFX2_Log(GFX2_DEBUG, "%-13s %c%c%c %p\n", filename,
|
||||
is_file ? 'f' : '-',
|
||||
is_directory ? 'd' : '-',
|
||||
is_hidden ? 'h' : '-',
|
||||
unicode_filename);
|
||||
if (0 == strcmp(filename, data->filename) && is_file && !is_directory)
|
||||
data->result = 1;
|
||||
}
|
||||
|
||||
int Test_File_exists(void)
|
||||
{
|
||||
struct dir_callback_data data;
|
||||
char path[256];
|
||||
FILE * f;
|
||||
|
||||
if (!Directory_exists(tmpdir))
|
||||
{
|
||||
GFX2_Log(GFX2_ERROR, "Directory_exists(\"%s\") FALSE\n", tmpdir);
|
||||
return 0;
|
||||
}
|
||||
snprintf(path, sizeof(path), "%s%sX%07x.tmp", tmpdir, PATH_SEPARATOR, (unsigned)(random() & 0x0fffffff));
|
||||
if (File_exists(path))
|
||||
{
|
||||
GFX2_Log(GFX2_ERROR, "File_exists(\"%s\") TRUE before creation\n", path);
|
||||
return 0;
|
||||
}
|
||||
f = fopen(path, "w");
|
||||
if (f == NULL)
|
||||
{
|
||||
GFX2_Log(GFX2_ERROR, "fopen(\"%s\", \"wb\") FAILED\n", path);
|
||||
return 0;
|
||||
}
|
||||
fputs("test\n", f);
|
||||
fclose(f);
|
||||
if (!File_exists(path))
|
||||
{
|
||||
GFX2_Log(GFX2_ERROR, "File_exists(\"%s\") FALSE after create\n", path);
|
||||
return 0;
|
||||
}
|
||||
data.result = 0;
|
||||
data.filename = Extract_filename(NULL, path);
|
||||
if (data.filename == NULL)
|
||||
{
|
||||
GFX2_Log(GFX2_ERROR, "Extract_filename(NULL, \"%s\") FAILED\n", path);
|
||||
return 0;
|
||||
}
|
||||
GFX2_Log(GFX2_DEBUG, "Listing directory with For_each_directory_entry(\"%s\"):\n", tmpdir);
|
||||
For_each_directory_entry(tmpdir, &data, directory_callback);
|
||||
if (!data.result)
|
||||
{
|
||||
GFX2_Log(GFX2_ERROR, "Failed to find file \"%s\" in directory \"%s\"\n", data.filename, tmpdir);
|
||||
free(data.filename);
|
||||
return 0;
|
||||
}
|
||||
free(data.filename);
|
||||
Remove_path(path);
|
||||
if (File_exists(path))
|
||||
{
|
||||
GFX2_Log(GFX2_ERROR, "File_exists(\"%s\") TRUE after Remove\n", path);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
int Test_Realpath(void)
|
||||
{
|
||||
char * path;
|
||||
|
||||
@ -6,6 +6,7 @@ TEST(Read_Write_word)
|
||||
TEST(Read_Write_dword)
|
||||
TEST(Read_Write_bytes)
|
||||
TEST(Realpath)
|
||||
TEST(File_exists)
|
||||
|
||||
TEST(MOTO_MAP_pack)
|
||||
TEST(CPC_compare_colors)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user