• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   * Copyright (C) 2014 The Android Open Source Project
3   *
4   * Licensed under the Apache License, Version 2.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *      http://www.apache.org/licenses/LICENSE-2.0
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  #include "NativeBridgeTest.h"
18  
19  #include <errno.h>
20  #include <sys/stat.h>
21  #include <unistd.h>
22  #include <fcntl.h>
23  
24  namespace android {
25  
26  // Tests that the bridge is initialized without errors if the code_cache is
27  // existed as a file.
TEST_F(NativeBridgeTest,CodeCacheStatFail)28  TEST_F(NativeBridgeTest, CodeCacheStatFail) {
29      int fd = creat(kCodeCache, O_RDWR);
30      ASSERT_NE(-1, fd);
31      close(fd);
32  
33      struct stat st;
34      ASSERT_EQ(-1, stat(kCodeCacheStatFail, &st));
35      ASSERT_EQ(ENOTDIR, errno);
36  
37      // Init
38      ASSERT_TRUE(LoadNativeBridge(kNativeBridgeLibrary, nullptr));
39      ASSERT_TRUE(PreInitializeNativeBridge(kCodeCacheStatFail, "isa"));
40      ASSERT_TRUE(InitializeNativeBridge(nullptr, nullptr));
41      ASSERT_TRUE(NativeBridgeAvailable());
42      ASSERT_FALSE(NativeBridgeError());
43  
44      // Clean up
45      UnloadNativeBridge();
46  
47      ASSERT_FALSE(NativeBridgeError());
48      unlink(kCodeCache);
49  }
50  
51  }  // namespace android
52