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