Skip to content

Commit 99035c1

Browse files
Address review: try/finally, stream cleanup, tensor guard in testAdd; use PYTHON_EXECUTABLE in prepare_add
Signed-off-by: Arnav Nagzirkar <113314200+arnavnagzirkar@users.noreply.github.com>
1 parent b10f869 commit 99035c1

2 files changed

Lines changed: 15 additions & 8 deletions

File tree

extension/android/executorch_android/android_test_setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ prepare_golden() {
4141

4242
prepare_add() {
4343
pushd "${BASEDIR}/../../.."
44-
python3 -m test.models.export_program --modules "ModuleAdd" --outdir "${BASEDIR}/src/androidTest/resources/"
44+
"${PYTHON_EXECUTABLE}" -m test.models.export_program --modules "ModuleAdd" --outdir "${BASEDIR}/src/androidTest/resources/"
4545
popd
4646
}
4747

extension/android/executorch_android/src/androidTest/java/org/pytorch/executorch/ModuleE2ETest.kt

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,22 @@ class ModuleE2ETest {
8484
val x = Tensor.fromBlob(floatArrayOf(1f, 2f, 3f, 4f), longArrayOf(2, 2))
8585
val y = Tensor.fromBlob(floatArrayOf(5f, 6f, 7f, 8f), longArrayOf(2, 2))
8686

87-
val pteStream = javaClass.getResourceAsStream("/ModuleAdd.pte")!!
8887
val pteFile = File(getTestFilePath("/ModuleAdd.pte"))
89-
FileUtils.copyInputStreamToFile(pteStream, pteFile)
88+
javaClass.getResourceAsStream("/ModuleAdd.pte")!!.use {
89+
FileUtils.copyInputStreamToFile(it, pteFile)
90+
}
9091

9192
val module = Module.load(pteFile.absolutePath)
92-
val results = module.forward(EValue.from(x), EValue.from(y), EValue.from(1.0))
93-
val actualOutput = results[0].toTensor().dataAsFloatArray
94-
95-
assertOutputsClose(actualOutput, floatArrayOf(6f, 8f, 10f, 12f))
96-
module.destroy()
93+
try {
94+
// ModuleAdd computes torch.add(x, y, alpha=alpha). The alpha scalar is
95+
// passed as a Double because EValue only exposes a Double scalar factory
96+
// (TYPE_CODE_DOUBLE); the float32 output dtype is determined by x and y.
97+
val results = module.forward(EValue.from(x), EValue.from(y), EValue.from(1.0))
98+
assertTrue(results[0].isTensor)
99+
val actualOutput = results[0].toTensor().dataAsFloatArray
100+
assertOutputsClose(actualOutput, floatArrayOf(6f, 8f, 10f, 12f))
101+
} finally {
102+
module.destroy()
103+
}
97104
}
98105
}

0 commit comments

Comments
 (0)