| 18 | namespace { |
| 19 | |
| 20 | TEST(NnapiLibTest, NnApiImplementation) { |
| 21 | const NnApi* nnapi = NnApiImplementation(); |
| 22 | EXPECT_NE(nnapi, nullptr); |
| 23 | #ifdef __ANDROID__ |
| 24 | EXPECT_GT(nnapi->android_sdk_version, 0); |
| 25 | if (nnapi.android_sdk_version < 27) { |
| 26 | EXPECT_FALSE(nnapi->nnapi_exists); |
| 27 | EXPECT_EQ(nnapi->ANeuralNetworksMemory_createFromFd, nullptr); |
| 28 | EXPECT_EQ(nnapi->ANeuralNetworksMemory_free, nullptr); |
| 29 | EXPECT_EQ(nnapi->ANeuralNetworksModel_create, nullptr); |
| 30 | EXPECT_EQ(nnapi->ANeuralNetworksModel_free, nullptr); |
| 31 | EXPECT_EQ(nnapi->ANeuralNetworksModel_finish, nullptr); |
| 32 | EXPECT_EQ(nnapi->ANeuralNetworksModel_addOperand, nullptr); |
| 33 | EXPECT_EQ(nnapi->ANeuralNetworksModel_setOperandValue, nullptr); |
| 34 | EXPECT_EQ(nnapi->ANeuralNetworksModel_setOperandValueFromMemory, nullptr); |
| 35 | EXPECT_EQ(nnapi->ANeuralNetworksModel_addOperation, nullptr); |
| 36 | EXPECT_EQ(nnapi->ANeuralNetworksModel_identifyInputsAndOutputs, nullptr); |
| 37 | EXPECT_EQ(nnapi->ANeuralNetworksModel_relaxComputationFloat32toFloat16, |
| 38 | nullptr); |
| 39 | EXPECT_EQ(nnapi->ANeuralNetworksCompilation_create, nullptr); |
| 40 | EXPECT_EQ(nnapi->ANeuralNetworksCompilation_free, nullptr); |
| 41 | EXPECT_EQ(nnapi->ANeuralNetworksCompilation_setPreference, nullptr); |
| 42 | EXPECT_EQ(nnapi->ANeuralNetworksCompilation_finish, nullptr); |
| 43 | EXPECT_EQ(nnapi->ANeuralNetworksExecution_create, nullptr); |
| 44 | EXPECT_EQ(nnapi->ANeuralNetworksExecution_free, nullptr); |
| 45 | EXPECT_EQ(nnapi->ANeuralNetworksExecution_setInput, nullptr); |
| 46 | EXPECT_EQ(nnapi->ANeuralNetworksExecution_setInputFromMemory, nullptr); |
| 47 | EXPECT_EQ(nnapi->ANeuralNetworksExecution_setOutput, nullptr); |
| 48 | EXPECT_EQ(nnapi->ANeuralNetworksExecution_setOutputFromMemory, nullptr); |
| 49 | EXPECT_EQ(nnapi->ANeuralNetworksExecution_startCompute, nullptr); |
| 50 | EXPECT_EQ(nnapi->ANeuralNetworksEvent_wait, nullptr); |
| 51 | EXPECT_EQ(nnapi->ANeuralNetworksEvent_free, nullptr); |
| 52 | EXPECT_EQ(nnapi->ASharedMemory_create, nullptr); |
| 53 | } else { |
| 54 | EXPECT_TRUE(nnapi->nnapi_exists); |
| 55 | EXPECT_NE(nnapi->ANeuralNetworksMemory_createFromFd, nullptr); |
| 56 | EXPECT_NE(nnapi->ANeuralNetworksMemory_free, nullptr); |
| 57 | EXPECT_NE(nnapi->ANeuralNetworksModel_create, nullptr); |
| 58 | EXPECT_NE(nnapi->ANeuralNetworksModel_free, nullptr); |
| 59 | EXPECT_NE(nnapi->ANeuralNetworksModel_finish, nullptr); |
| 60 | EXPECT_NE(nnapi->ANeuralNetworksModel_addOperand, nullptr); |
| 61 | EXPECT_NE(nnapi->ANeuralNetworksModel_setOperandValue, nullptr); |
| 62 | EXPECT_NE(nnapi->ANeuralNetworksModel_setOperandValueFromMemory, nullptr); |
| 63 | EXPECT_NE(nnapi->ANeuralNetworksModel_addOperation, nullptr); |
| 64 | EXPECT_NE(nnapi->ANeuralNetworksModel_identifyInputsAndOutputs, nullptr); |
| 65 | if (nnapi->android_sdk_version >= 28) { |
| 66 | // relaxComputationFloat32toFloat16 only available with Android 9.0 (P). |
| 67 | EXPECT_NE(nnapi->ANeuralNetworksModel_relaxComputationFloat32toFloat16, |
| 68 | nullptr); |
| 69 | } else { |
| 70 | EXPECT_EQ(nnapi->ANeuralNetworksModel_relaxComputationFloat32toFloat16, |
| 71 | nullptr); |
| 72 | } |
| 73 | EXPECT_NE(nnapi->ANeuralNetworksCompilation_create, nullptr); |
| 74 | EXPECT_NE(nnapi->ANeuralNetworksCompilation_free, nullptr); |
| 75 | EXPECT_NE(nnapi->ANeuralNetworksCompilation_setPreference, nullptr); |
| 76 | EXPECT_NE(nnapi->ANeuralNetworksCompilation_finish, nullptr); |
| 77 | EXPECT_NE(nnapi->ANeuralNetworksExecution_create, nullptr); |
nothing calls this directly
no test coverage detected