xref: /aosp_15_r20/cts/tests/sensor/jni/nativeTestHelper.h (revision b7c941bb3fa97aba169d73cee0bed2de8ac964bf)
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