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