168ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov/* 268ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * Copyright (C) 2017 The Android Open Source Project 368ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * 468ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * Licensed under the Apache License, Version 2.0 (the "License"); 568ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * you may not use this file except in compliance with the License. 668ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * You may obtain a copy of the License at 768ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * 868ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * http://www.apache.org/licenses/LICENSE-2.0 968ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * 1068ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * Unless required by applicable law or agreed to in writing, software 1168ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * distributed under the License is distributed on an "AS IS" BASIS, 1268ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1368ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * See the License for the specific language governing permissions and 1468ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov * limitations under the License. 1568ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov */ 1668ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov 1768ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov#include <assert.h> 1868ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov#include <dlfcn.h> 1968ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov 2068ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov#include "libs_utils.h" 2168ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov 2268ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanovint main(void) { 2368ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov void* handle; 2468ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov // libcfi-test.so does some basic testing in a global constructor. Check that it is linked. 2568ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov handle = dlopen("libcfi-test.so", RTLD_NOW | RTLD_NOLOAD); 2668ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov CHECK(handle != nullptr); 2768ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov dlclose(handle); 2868ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov return 0; 2968ecec1965dcec08c7df3f0224d69604c683cd6cEvgenii Stepanov} 30