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 10namespace base { 11 12typedef 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. 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