Skip to content

Commit 1cca0b8

Browse files
committed
Add new errno for new test cases
1 parent d42581b commit 1cca0b8

File tree

4 files changed

+40
-21
lines changed

4 files changed

+40
-21
lines changed

core/iwasm/libraries/wasi-nn/include/wasi_nn_types.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ typedef enum {
4848
WASI_NN_ERROR_NAME(unsupported_operation),
4949
WASI_NN_ERROR_NAME(too_large),
5050
WASI_NN_ERROR_NAME(not_found),
51+
WASI_NN_ERROR_NAME(not_loaded),
5152

5253
// for WasmEdge-wasi-nn
5354
WASI_NN_ERROR_NAME(end_of_sequence) = 100, // End of Sequence Found.

core/iwasm/libraries/wasi-nn/src/wasi_nn.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -688,10 +688,10 @@ wasi_nn_load_by_name(wasm_exec_env_t exec_env, char *name, uint32_t name_len,
688688
res = too_large;
689689
}
690690
else if (model_idx >= global_n_graphs) {
691-
NN_ERR_PRINTF("Cannot find model %s, you should pass its path "
691+
NN_ERR_PRINTF("Model %s is not loaded, you should pass its path "
692692
"through --wasi-nn-graph",
693693
nul_terminated_name);
694-
res = not_found;
694+
res = not_loaded;
695695
}
696696
goto fail;
697697
}

core/iwasm/libraries/wasi-nn/test/test_tensorflow.c

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ test_sum()
2222
float *output =
2323
run_inference(input.input_tensor, input.dim, &output_size, "sum", 1);
2424

25-
assert((output_size / sizeof(float)) == 1);
26-
assert(fabs(output[0] - 300.0) < EPSILON);
25+
if (output) {
26+
assert((output_size / sizeof(float)) == 1);
27+
assert(fabs(output[0] - 300.0) < EPSILON);
28+
}
2729

2830
free(input.dim);
2931
free(input.input_tensor);
@@ -40,9 +42,11 @@ test_max()
4042
float *output =
4143
run_inference(input.input_tensor, input.dim, &output_size, "max", 1);
4244

43-
assert((output_size / sizeof(float)) == 1);
44-
assert(fabs(output[0] - 24.0) < EPSILON);
45-
NN_INFO_PRINTF("Result: max is %f", output[0]);
45+
if (output) {
46+
assert((output_size / sizeof(float)) == 1);
47+
assert(fabs(output[0] - 24.0) < EPSILON);
48+
NN_INFO_PRINTF("Result: max is %f", output[0]);
49+
}
4650

4751
free(input.dim);
4852
free(input.input_tensor);
@@ -59,9 +63,11 @@ test_average()
5963
float *output = run_inference(input.input_tensor, input.dim, &output_size,
6064
"average", 1);
6165

62-
assert((output_size / sizeof(float)) == 1);
63-
assert(fabs(output[0] - 12.0) < EPSILON);
64-
NN_INFO_PRINTF("Result: average is %f", output[0]);
66+
if (output) {
67+
assert((output_size / sizeof(float)) == 1);
68+
assert(fabs(output[0] - 12.0) < EPSILON);
69+
NN_INFO_PRINTF("Result: average is %f", output[0]);
70+
}
6571

6672
free(input.dim);
6773
free(input.input_tensor);
@@ -78,9 +84,11 @@ test_mult_dimensions()
7884
float *output = run_inference(input.input_tensor, input.dim, &output_size,
7985
"mult_dim", 1);
8086

81-
assert((output_size / sizeof(float)) == 9);
82-
for (int i = 0; i < 9; i++)
83-
assert(fabs(output[i] - i) < EPSILON);
87+
if (output) {
88+
assert((output_size / sizeof(float)) == 9);
89+
for (int i = 0; i < 9; i++)
90+
assert(fabs(output[i] - i) < EPSILON);
91+
}
8492

8593
free(input.dim);
8694
free(input.input_tensor);
@@ -97,13 +105,15 @@ test_mult_outputs()
97105
float *output = run_inference(input.input_tensor, input.dim, &output_size,
98106
"mult_out", 2);
99107

100-
assert((output_size / sizeof(float)) == 8);
101-
// first tensor check
102-
for (int i = 0; i < 4; i++)
103-
assert(fabs(output[i] - (i * 4 + 24)) < EPSILON);
104-
// second tensor check
105-
for (int i = 0; i < 4; i++)
106-
assert(fabs(output[i + 4] - (i + 6)) < EPSILON);
108+
if (output) {
109+
assert((output_size / sizeof(float)) == 8);
110+
// first tensor check
111+
for (int i = 0; i < 4; i++)
112+
assert(fabs(output[i] - (i * 4 + 24)) < EPSILON);
113+
// second tensor check
114+
for (int i = 0; i < 4; i++)
115+
assert(fabs(output[i + 4] - (i + 6)) < EPSILON);
116+
}
107117

108118
free(input.dim);
109119
free(input.input_tensor);

core/iwasm/libraries/wasi-nn/test/utils.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,15 @@ run_inference(float *input, uint32_t *input_size, uint32_t *output_size,
144144
{
145145
WASI_NN_NAME(graph) graph;
146146

147-
if (wasm_load_by_name(model_name, &graph) != WASI_NN_ERROR_NAME(success)) {
147+
WASI_NN_ERROR_TYPE res = wasm_load_by_name(model_name, &graph);
148+
149+
if (res == WASI_NN_ERROR_NAME(not_loaded)) {
150+
NN_INFO_PRINTF("Model %s is not loaded, you should pass its path "
151+
"through --wasi-nn-graph",
152+
model_name);
153+
return NULL;
154+
}
155+
else if (res != WASI_NN_ERROR_NAME(success)) {
148156
NN_ERR_PRINTF("Error when loading model.");
149157
exit(1);
150158
}

0 commit comments

Comments
 (0)