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 WorkerTEST_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