1 /* ///////////////////////////////////////////////////////////////////////
2 * File: path_traits_test.h
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
12 #ifndef EXTL_PLATFORM_WIN_PATH_TRAITS_TEST_H
13 #define EXTL_PLATFORM_WIN_PATH_TRAITS_TEST_H
15 #ifndef EXTL_PLATFORM_WIN_PATH_TRAITS_H
16 # error This file must be included of path_traits.h
19 /* ///////////////////////////////////////////////////////////////////////
20 * ::unit_test namespace
22 EXTL_TEST_BEGIN_NAMESPACE
24 /* ///////////////////////////////////////////////////////////////////////
27 struct path_traits_test
31 EXTL_TEST_TRACE("/* //////////////////////////////////////////////////////////////////// */");
32 EXTL_TEST_TRACE("path_traits Test:\n");
34 e_tchar_t dir
[1 + EXTL_MAX_PATH
] = _T("C:\\file");
36 path_traits
<e_tchar_t
>::push_sep(dir
);
37 EXTL_TEST_TRACE(_T("push_sep(C:\\file): %s"), dir
);
38 path_traits
<e_tchar_t
>::pop_sep(dir
);
39 EXTL_TEST_TRACE(_T("pop_sep(C:\\file\\): %s\n"), dir
);
41 path_traits
<e_tchar_t
>::push(dir
, _T("file2"));
42 EXTL_TEST_TRACE(_T("push(file2): %s"), dir
);
43 path_traits
<e_tchar_t
>::pop(dir
);
44 EXTL_TEST_TRACE(_T("pop(): %s\n"), dir
);
46 path_traits
<e_tchar_t
>::push_ext_name(dir
, _T("txt"));
47 EXTL_TEST_TRACE(_T("push_ext_name(txt): %s"), dir
);
48 path_traits
<e_tchar_t
>::pop_ext_name(dir
);
49 EXTL_TEST_TRACE(_T("pop_ext_name(): %s\n"), dir
);
51 EXTL_TEST_TRACE(_T("path entry enum: C:\\dir1\\/.\\..\\dir2\\.\\dir3/dir4\\\\file.txt"));
52 typedef path_traits
<e_tchar_t
>::path_entry_type path_entry_type
;
53 path_entry_type
ei(path_entry_type::en_enum_all
);
54 if (path_traits
<e_tchar_t
>::entry_enum_start(_T("C:\\dir1\\/.\\..\\dir2\\.\\dir3/dir4\\\\file.txt"), ei
))
58 EXTL_TEST_TRACE(_T("name:%s"), ei
.name());
60 while (path_traits
<e_tchar_t
>::entry_enum(ei
));
62 path_traits
<e_tchar_t
>::entry_enum_stop(ei
);
65 EXTL_TEST_TRACE(_T("\npattern_all : %s"), path_traits
<e_tchar_t
>::pattern_all());
69 path_traits_test g_path_traits_test
;
71 /* ///////////////////////////////////////////////////////////////////////
72 * ::unit_test namespace
74 EXTL_TEST_END_NAMESPACE
76 /* //////////////////////////////////////////////////////////////////// */
77 #endif /* EXTL_PLATFORM_WIN_PATH_TRAITS_TEST_H */
78 /* //////////////////////////////////////////////////////////////////// */