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