11402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle/* 21402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * Copyright (C) 2014 The Android Open Source Project 31402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * 41402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * Licensed under the Apache License, Version 2.0 (the "License"); 51402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * you may not use this file except in compliance with the License. 61402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * You may obtain a copy of the License at 71402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * 81402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * http://www.apache.org/licenses/LICENSE-2.0 91402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * 101402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * Unless required by applicable law or agreed to in writing, software 111402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * distributed under the License is distributed on an "AS IS" BASIS, 121402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * See the License for the specific language governing permissions and 141402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle * limitations under the License. 151402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle */ 161402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle 171402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle#include "NativeBridgeTest.h" 181402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle 199ef4fa4c2c4f6bece351a855f53b2270f218389cCalin Juravle#include <unistd.h> 209ef4fa4c2c4f6bece351a855f53b2270f218389cCalin Juravle 211402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravlenamespace android { 221402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle 231402fbb13523fed9d96217e801df5678e3c01a6bCalin JuravleTEST_F(NativeBridgeTest, CompleteFlow) { 241402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle // Init 251402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle ASSERT_TRUE(LoadNativeBridge(kNativeBridgeLibrary, nullptr)); 261402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle ASSERT_TRUE(NativeBridgeAvailable()); 271402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle ASSERT_TRUE(PreInitializeNativeBridge(".", "isa")); 281402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle ASSERT_TRUE(NativeBridgeAvailable()); 291402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle ASSERT_TRUE(InitializeNativeBridge(nullptr, nullptr)); 301402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle ASSERT_TRUE(NativeBridgeAvailable()); 311402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle 321402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle // Basic calls to check that nothing crashes 331402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle ASSERT_FALSE(NativeBridgeIsSupported(nullptr)); 341402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle ASSERT_EQ(nullptr, NativeBridgeLoadLibrary(nullptr, 0)); 351402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle ASSERT_EQ(nullptr, NativeBridgeGetTrampoline(nullptr, nullptr, nullptr, 0)); 361402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle 371402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle // Unload 381402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle UnloadNativeBridge(); 39f9d9e2a2d96559c3165405d572b08e260156074aCalin Juravle 409ef4fa4c2c4f6bece351a855f53b2270f218389cCalin Juravle ASSERT_FALSE(NativeBridgeAvailable()); 411402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle ASSERT_FALSE(NativeBridgeError()); 429ef4fa4c2c4f6bece351a855f53b2270f218389cCalin Juravle 439ef4fa4c2c4f6bece351a855f53b2270f218389cCalin Juravle // Clean-up code_cache 449ef4fa4c2c4f6bece351a855f53b2270f218389cCalin Juravle ASSERT_EQ(0, rmdir(kCodeCache)); 451402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle} 461402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle 471402fbb13523fed9d96217e801df5678e3c01a6bCalin Juravle} // namespace android 48