1*b7c941bbSAndroid Build Coastguard Worker /* 2*b7c941bbSAndroid Build Coastguard Worker * Copyright (C) 2017 The Android Open Source Project 3*b7c941bbSAndroid Build Coastguard Worker * 4*b7c941bbSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*b7c941bbSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*b7c941bbSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*b7c941bbSAndroid Build Coastguard Worker * 8*b7c941bbSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*b7c941bbSAndroid Build Coastguard Worker * 10*b7c941bbSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*b7c941bbSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*b7c941bbSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*b7c941bbSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*b7c941bbSAndroid Build Coastguard Worker * limitations under the License. 15*b7c941bbSAndroid Build Coastguard Worker * 16*b7c941bbSAndroid Build Coastguard Worker */ 17*b7c941bbSAndroid Build Coastguard Worker 18*b7c941bbSAndroid Build Coastguard Worker #include <jni.h> 19*b7c941bbSAndroid Build Coastguard Worker 20*b7c941bbSAndroid Build Coastguard Worker #include <android/log.h> 21*b7c941bbSAndroid Build Coastguard Worker #define TAG "SensorNativeTest" 22*b7c941bbSAndroid Build Coastguard Worker #define ALOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__) 23*b7c941bbSAndroid Build Coastguard Worker #define ALOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__) 24*b7c941bbSAndroid Build Coastguard Worker #define ALOGI(...) __android_log_print(ANDROID_LOG_INFO, TAG, __VA_ARGS__) 25*b7c941bbSAndroid Build Coastguard Worker 26*b7c941bbSAndroid Build Coastguard Worker #define ASSERT(condition, format, args...) \ 27*b7c941bbSAndroid Build Coastguard Worker if (!(condition)) { \ 28*b7c941bbSAndroid Build Coastguard Worker fail(env, format, ## args); \ 29*b7c941bbSAndroid Build Coastguard Worker return; \ 30*b7c941bbSAndroid Build Coastguard Worker } 31*b7c941bbSAndroid Build Coastguard Worker 32*b7c941bbSAndroid Build Coastguard Worker // gtest style assert 33*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_TRUE(a) ASSERT((a), "assert failed on (" #a ") at " __FILE__ ":%d", __LINE__) 34*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_FALSE(a) ASSERT(!(a), "assert failed on (!" #a ") at " __FILE__ ":%d", __LINE__) 35*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_EQ(a, b) \ 36*b7c941bbSAndroid Build Coastguard Worker ASSERT((a) == (b), "assert failed on (" #a " == " #b ") at " __FILE__ ":%d", __LINE__) 37*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_NE(a, b) \ 38*b7c941bbSAndroid Build Coastguard Worker ASSERT((a) != (b), "assert failed on (" #a " != " #b ") at " __FILE__ ":%d", __LINE__) 39*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_GT(a, b) \ 40*b7c941bbSAndroid Build Coastguard Worker ASSERT((a) > (b), "assert failed on (" #a " > " #b ") at " __FILE__ ":%d", __LINE__) 41*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_GE(a, b) \ 42*b7c941bbSAndroid Build Coastguard Worker ASSERT((a) >= (b), "assert failed on (" #a " >= " #b ") at " __FILE__ ":%d", __LINE__) 43*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_LT(a, b) \ 44*b7c941bbSAndroid Build Coastguard Worker ASSERT((a) < (b), "assert failed on (" #a " < " #b ") at " __FILE__ ":%d", __LINE__) 45*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_LE(a, b) \ 46*b7c941bbSAndroid Build Coastguard Worker ASSERT((a) <= (b), "assert failed on (" #a " <= " #b ") at " __FILE__ ":%d", __LINE__) 47*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_NULL(a) \ 48*b7c941bbSAndroid Build Coastguard Worker ASSERT((a) == nullptr, "assert failed on isNull(" #a ") at " __FILE__ ":%d", __LINE__) 49*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_NOT_NULL(a) \ 50*b7c941bbSAndroid Build Coastguard Worker ASSERT((a) != nullptr, "assert failed on isNotNull(" #a ") at " __FILE__ ":%d", __LINE__) 51*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_NAN(a) \ 52*b7c941bbSAndroid Build Coastguard Worker ASSERT(isnan(a), "assert failed on isNan(" #a ") at " __FILE__ ":%d", __LINE__) 53*b7c941bbSAndroid Build Coastguard Worker #define ASSERT_EMPTY_CSTR(a) do { \ 54*b7c941bbSAndroid Build Coastguard Worker const char *tmp = a; \ 55*b7c941bbSAndroid Build Coastguard Worker ASSERT(tmp != nullptr, \ 56*b7c941bbSAndroid Build Coastguard Worker "assert failed on (empty_cstr(" #a "): " #a " != nullptr) " \ 57*b7c941bbSAndroid Build Coastguard Worker "at " __FILE__ ":%d", __LINE__); \ 58*b7c941bbSAndroid Build Coastguard Worker ASSERT(tmp[0] == '\0', \ 59*b7c941bbSAndroid Build Coastguard Worker "assert failed on (empty_cstr(" #a "): strlen() == 0) " \ 60*b7c941bbSAndroid Build Coastguard Worker "at " __FILE__ ":%d", __LINE__); \ 61*b7c941bbSAndroid Build Coastguard Worker } while (false) 62*b7c941bbSAndroid Build Coastguard Worker 63*b7c941bbSAndroid Build Coastguard Worker 64*b7c941bbSAndroid Build Coastguard Worker void fail(JNIEnv* env, const char* format, ...); 65