If you call ‘host_execute /fullpath/testsuite/unit-test/unit’, host_execute can find the unit test but not execute it. If you call ‘host_execute /testsuite/unit-test/unit’, host_execute can’t find the unit test (but could execute it). If you call ‘host_execute testsuite/unit-test/unit’, host_execute works. This is because the lookup of the executable is done using: if {![file exists ${executable}]} And the executing is done using: spawn -noecho "./$executable" ${params} Please make the usage of $executable consistent and document how host_execute should be called.