xref: /aosp_15_r20/external/libchrome/base/os_compat_android_unittest.cc (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
1*635a8641SAndroid Build Coastguard Worker // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file.
4*635a8641SAndroid Build Coastguard Worker 
5*635a8641SAndroid Build Coastguard Worker #include "base/os_compat_android.h"
6*635a8641SAndroid Build Coastguard Worker 
7*635a8641SAndroid Build Coastguard Worker #include "base/files/file_util.h"
8*635a8641SAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h"
9*635a8641SAndroid Build Coastguard Worker 
10*635a8641SAndroid Build Coastguard Worker namespace base {
11*635a8641SAndroid Build Coastguard Worker 
12*635a8641SAndroid Build Coastguard Worker typedef testing::Test OsCompatAndroidTest;
13*635a8641SAndroid Build Coastguard Worker 
14*635a8641SAndroid Build Coastguard Worker // Keep this Unittest DISABLED_ , because it actually creates a directory in the
15*635a8641SAndroid Build Coastguard Worker // device and it may be source of flakyness. For any changes in the mkdtemp
16*635a8641SAndroid Build Coastguard Worker // function, you should run this unittest in your local machine to check if it
17*635a8641SAndroid Build Coastguard Worker // passes.
TEST_F(OsCompatAndroidTest,DISABLED_TestMkdTemp)18*635a8641SAndroid Build Coastguard Worker TEST_F(OsCompatAndroidTest, DISABLED_TestMkdTemp) {
19*635a8641SAndroid Build Coastguard Worker   FilePath tmp_dir;
20*635a8641SAndroid Build Coastguard Worker   EXPECT_TRUE(base::GetTempDir(&tmp_dir));
21*635a8641SAndroid Build Coastguard Worker 
22*635a8641SAndroid Build Coastguard Worker   // Not six XXXXXX at the suffix of the path.
23*635a8641SAndroid Build Coastguard Worker   FilePath sub_dir = tmp_dir.Append("XX");
24*635a8641SAndroid Build Coastguard Worker   std::string sub_dir_string = sub_dir.value();
25*635a8641SAndroid Build Coastguard Worker   // this should be OK since mkdtemp just replaces characters in place
26*635a8641SAndroid Build Coastguard Worker   char* buffer = const_cast<char*>(sub_dir_string.c_str());
27*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ(NULL, mkdtemp(buffer));
28*635a8641SAndroid Build Coastguard Worker 
29*635a8641SAndroid Build Coastguard Worker   // Directory does not exist
30*635a8641SAndroid Build Coastguard Worker   char invalid_path2[] = "doesntoexist/foobarXXXXXX";
31*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ(NULL, mkdtemp(invalid_path2));
32*635a8641SAndroid Build Coastguard Worker 
33*635a8641SAndroid Build Coastguard Worker   // Successfully create a tmp dir.
34*635a8641SAndroid Build Coastguard Worker   FilePath sub_dir2 = tmp_dir.Append("XXXXXX");
35*635a8641SAndroid Build Coastguard Worker   std::string sub_dir2_string = sub_dir2.value();
36*635a8641SAndroid Build Coastguard Worker   // this should be OK since mkdtemp just replaces characters in place
37*635a8641SAndroid Build Coastguard Worker   char* buffer2 = const_cast<char*>(sub_dir2_string.c_str());
38*635a8641SAndroid Build Coastguard Worker   EXPECT_TRUE(mkdtemp(buffer2) != NULL);
39*635a8641SAndroid Build Coastguard Worker }
40*635a8641SAndroid Build Coastguard Worker 
41*635a8641SAndroid Build Coastguard Worker }  // namespace base
42