18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file file_manip_tests.cpp 38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * 48cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Copyright 2003 OProfile authors 58cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Read the file COPYING 68cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * 78cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author John Levon 88cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author Philippe Elie 98cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */ 108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <unistd.h> 128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <stdlib.h> 138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <string> 158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <iostream> 168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <list> 178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "file_manip.h" 198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddusing namespace std; 218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddtemplate <typename Input, typename Output> 238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstruct input_output { 248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd Input input; 258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd Output output; 268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddtemplate <typename Input, typename Output, typename Result> 308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic void check_result(char const * fct_name, Input const & input, 318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd Output const & output, Result const & result) 328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd if (result != output) { 348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd cerr << fct_name << " " 358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd << "for:\n\"" << input << "\"\n" 368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd << "expect:\n\"" << output << "\"\n" 378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd << "found:\n\"" << result << "\"\n"; 388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd exit(EXIT_FAILURE); 398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 418cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 428cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddtemplate <typename Input, typename Output, typename Result> 438cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic void check_result(char const * fct_name, Input const & input1, 448cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd Input input2, Output const & output, Result const & result) 458cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 468cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd if (result != output) { 478cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd cerr << fct_name << ": \n" 488cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd << "for:\n\"" << input1 << "\"\n" 498cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd << "\"" << input2 << "\"\n" 508cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd << "expect:\n\"" << output << "\"\n" 518cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd << "found:\n\"" << result << "\"\n"; 528cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd exit(EXIT_FAILURE); 538cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 548cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 558cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 568cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 578cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic input_output<char const *, char const *> expect_dirname[] = 588cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 598cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "/", "/" }, 608cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "//////", "/" }, 618cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "/usr", "/" }, 628cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "///usr", "/" }, 638cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd // suprising but conform to dirname(1) 648cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "///usr/dir", "///usr" }, 658cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "usr/dir", "usr" }, 668cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "usr", "." }, 678cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "n", "." }, 688cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "../..", ".." }, 698cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "/../..", "/.." }, 708cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "./..", "." }, 718cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "./.", "." }, 728cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "..", "." }, 738cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { ".", "." }, 748cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "", "." }, 758cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { 0, 0 } 768cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 778cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 788cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic void dirname_tests() 798cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 808cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd input_output<char const *, char const *> const * cur; 818cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd for (cur = expect_dirname; cur->input; ++cur) { 828cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string result = op_dirname(cur->input); 838cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check_result("dirname", cur->input, cur->output, result); 848cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 858cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 868cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 878cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 888cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic input_output<char const *, char const*> expect_basename[] = 898cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 908cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "/", "/" }, 918cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "//////", "/" }, 928cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "/usr", "usr" }, 938cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "///usr", "usr" }, 948cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "///usr/dir", "dir" }, 958cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "///usr//dir", "dir" }, 968cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "usr/dir", "dir" }, 978cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "usr", "usr" }, 988cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "../..", ".." }, 998cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "/../..", ".." }, 1008cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "./..", ".." }, 1018cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "./.", "." }, 1028cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { ".", "." }, 1038cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { 0, 0 } 1048cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 1058cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1068cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic void basename_tests() 1078cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 1088cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd input_output<char const *, char const *> const * cur; 1098cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd for (cur = expect_basename; cur->input; ++cur) { 1108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string result = op_basename(cur->input); 1118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check_result("basename", cur->input, cur->output, result); 1128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 1138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 1148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic input_output<char const *, bool> expect_is_directory[] = 1178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 1188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { ".", true }, 1198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "/.", true }, 1208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "./", true }, 1218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "/", true }, 1228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "../", true }, 1238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "../.", true }, 1248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "non_existing_dir", false }, 1258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { 0, 0 } 1268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 1278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic void is_directory_tests() 1298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 1308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd input_output<char const *, bool> const * cur; 1318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd for (cur = expect_is_directory; cur->input; ++cur) { 1328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd bool result = is_directory(cur->input); 1338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check_result("is_directory", cur->input, cur->output, result); 1348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 1358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 1368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic input_output<pair<string, string>, bool> 1398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddexpect_is_files_identical[] = { 1408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#define MAKE_PAIR(a, b) make_pair(string(a), string(b)) 1418cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { MAKE_PAIR(__FILE__, __FILE__), true }, 1428cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { MAKE_PAIR(__FILE__, "not_existing"), false }, 1438cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { MAKE_PAIR("not_exisiting", __FILE__), false }, 1448cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { MAKE_PAIR("not_exisiting", "not_existing"), false }, 1458cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { MAKE_PAIR("", ""), false } 1468cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#undef MAKE_PAIR 1478cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 1488cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1498cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddvoid is_files_identical_tests(char const * prog_name) 1508cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 1518cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check_result("is_files_identical", prog_name, prog_name, 1528cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd is_files_identical(prog_name, prog_name), true); 1538cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1548cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd input_output<pair<string, string>, bool> const * cur; 1558cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd for (cur = expect_is_files_identical; !cur->input.first.empty(); ++cur) { 1568cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd bool result = is_files_identical(cur->input.first, 1578cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd cur->input.second); 1588cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check_result("is_files_identical", cur->input.first, 1598cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd cur->input.second, cur->output, result); 1608cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 1618cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 1628cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1638cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1648cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic input_output<char const *, bool> expect_op_file_readable[] = 1658cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 1668cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { __FILE__, true }, 1678cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "./" __FILE__, true }, 1688cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { ".", false }, 1698cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "/.", false }, 1708cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "./", false }, 1718cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "/", false }, 1728cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "../", false }, 1738cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "../.", false }, 1748cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "non_existing_file", false }, 1758cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { 0, 0 } 1768cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 1778cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1788cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic void op_file_readable_tests() 1798cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 1808cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd input_output<char const *, bool> const * cur; 1818cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd for (cur = expect_op_file_readable; cur->input; ++cur) { 1828cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd bool result = op_file_readable(cur->input); 1838cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check_result("op_file_readable", cur->input, cur->output, result); 1848cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 1858cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 1868cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1878cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 1888cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic input_output<string, string> expect_realpath[] = 1898cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 1908cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd // realpath() file argument must exists. 1918cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "file_manip_tests.o", "file_manip_tests.o" }, 1928cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "../tests/" "file_manip_tests.o", "file_manip_tests.o" }, 1938cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { ".//.//" "file_manip_tests.o", "file_manip_tests.o" }, 1948cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd // POSIX namespaces ignored by realpath(3) 1958cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "//", "/" }, 1968cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "//usr", "/usr" }, 1978cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "///", "/" }, 1988cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd { "", "" } 1998cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 2008cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 2018cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 2028cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd// FIXME: useful to test symlinks too 2038cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstatic void realpath_tests() 2048cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 2058cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd input_output<string, string> const * cur; 2068cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd for (cur = expect_realpath; !cur->input.empty(); ++cur) { 2078cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string result = op_realpath(cur->input); 2088cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string expect = cur->output; 2098cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd if (cur->input[0] != '/') 2108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd expect = SRCDIR + expect; 2118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check_result("op_realpath", cur->input, 2128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd expect, result); 2138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 2148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 2158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 2168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 2178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddvoid create_file_list_tests() 2188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 2198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd list<string> result; 2208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd if (!create_file_list(result, ".")) { 2218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd cerr << "create_file_list() fail\n"; 2228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd exit(EXIT_FAILURE); 2238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 2248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd if (result.empty()) { 2258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd cerr << "create_file_list(); empty result\n"; 2268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd exit(EXIT_FAILURE); 2278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 2288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 2298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 2308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 2318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddint main(int, char * argv[]) 2328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 2338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd dirname_tests(); 2348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd basename_tests(); 2358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd is_directory_tests(); 2368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd is_files_identical_tests(argv[0]); 2378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd op_file_readable_tests(); 2388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd realpath_tests(); 2398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd create_file_list_tests(); 2408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd return EXIT_SUCCESS; 2418cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 242