diff --git a/scripts/generate-matrix.sh b/scripts/generate-matrix.sh
index 3dd952c..1a359cd 100755
--- a/scripts/generate-matrix.sh
+++ b/scripts/generate-matrix.sh
@@ -18,30 +18,10 @@ if [ -z "$ALL_SDKS" ]; then
fi
echo "Available SDKs from API: $ALL_SDKS"
-# Filter out compiled languages - they can't run inception tests
-# (source files need compilation, can't be executed directly via API)
-COMPILED_LANGS="rust go c cpp java kotlin swift csharp fsharp haskell ocaml d nim zig crystal fortran cobol objc v dart"
-
-filter_compiled() {
- local langs="$1"
- local result=""
- for lang in $langs; do
- local is_compiled=false
- for compiled in $COMPILED_LANGS; do
- if [ "$lang" = "$compiled" ]; then
- is_compiled=true
- break
- fi
- done
- if [ "$is_compiled" = false ]; then
- result="$result $lang"
- fi
- done
- echo "$result" | xargs # trim whitespace
-}
+# Test ALL languages - the sandbox has compilers for compiled languages too!
if [ "$TEST_ALL" = "true" ]; then
- LANGS=$(filter_compiled "$ALL_SDKS")
+ LANGS="$ALL_SDKS"
elif [ -z "$CHANGED_LANGS" ]; then
# No changes - create minimal valid child pipeline that does nothing
cat > test-matrix.yml << 'EOF'
diff --git a/scripts/test-sdk.sh b/scripts/test-sdk.sh
index 8a42718..5f5d60a 100755
--- a/scripts/test-sdk.sh
+++ b/scripts/test-sdk.sh
@@ -70,38 +70,12 @@ get_sdk_file() {
esac
}
-# Check if language is compiled
-is_compiled_language() {
- case "$1" in
- rust|go|c|cpp|java|kotlin|swift|csharp|fsharp|haskell|ocaml|d|nim|zig|crystal|fortran|cobol|objc|dart|v)
- return 0 ;;
- *)
- return 1 ;;
- esac
-}
-
SDK_FILE=$(get_sdk_file "$LANG")
echo "=== Inception Test: $LANG ==="
echo "SDK: $SDK_FILE"
echo ""
-# Skip compiled languages
-if is_compiled_language "$LANG"; then
- echo "SKIP: $LANG is a compiled language - inception test not applicable"
- cat > "$RESULTS_DIR/test-results.xml" << EOF
-
-
-
-
-
-
-
-
-EOF
- exit 0
-fi
-
# Check if un CLI exists
if [ ! -x "build/un" ]; then
echo "ERROR: build/un not found. Run build-clients.sh first."
@@ -134,9 +108,10 @@ FAILURES=0
echo "Running inception tests..."
echo ""
-# Map language name to interpreter for -s flag
+# Map language name to API interpreter name for -s flag
get_interpreter() {
case "$1" in
+ # Interpreted languages
python) echo "python" ;;
javascript) echo "javascript" ;;
typescript) echo "typescript" ;;
@@ -157,10 +132,31 @@ get_interpreter() {
groovy) echo "groovy" ;;
raku) echo "raku" ;;
julia) echo "julia" ;;
- dart) echo "dart" ;;
prolog) echo "prolog" ;;
forth) echo "forth" ;;
powershell) echo "powershell" ;;
+ deno) echo "deno" ;;
+ # Compiled languages (sandbox has compilers)
+ go) echo "go" ;;
+ rust) echo "rust" ;;
+ c) echo "c" ;;
+ cpp) echo "cpp" ;;
+ java) echo "java" ;;
+ kotlin) echo "kotlin" ;;
+ swift) echo "swift" ;;
+ csharp) echo "csharp" ;;
+ fsharp) echo "fsharp" ;;
+ haskell) echo "haskell" ;;
+ ocaml) echo "ocaml" ;;
+ d) echo "d" ;;
+ nim) echo "nim" ;;
+ zig) echo "zig" ;;
+ crystal) echo "crystal" ;;
+ fortran) echo "fortran" ;;
+ cobol) echo "cobol" ;;
+ objc) echo "objc" ;;
+ dart) echo "dart" ;;
+ v) echo "v" ;;
*) echo "$1" ;;
esac
}
@@ -246,6 +242,7 @@ TOTAL_TESTS=$((TOTAL_TESTS + 1))
# Language-specific "hello world" commands
get_hello_code() {
case "$1" in
+ # Interpreted languages
python|python3) echo 'print("inception-chain-ok")' ;;
javascript|typescript|deno) echo 'console.log("inception-chain-ok")' ;;
ruby) echo 'puts "inception-chain-ok"' ;;
@@ -264,8 +261,32 @@ get_hello_code() {
groovy) echo 'println "inception-chain-ok"' ;;
julia) echo 'println("inception-chain-ok")' ;;
prolog) echo ':- write("inception-chain-ok"), nl, halt.' ;;
- forth) echo '.\" inception-chain-ok\" cr' ;;
+ forth) echo '.( inception-chain-ok) cr bye' ;;
powershell) echo 'Write-Output "inception-chain-ok"' ;;
+ # Compiled languages
+ go) echo 'package main; import "fmt"; func main() { fmt.Println("inception-chain-ok") }' ;;
+ rust) echo 'fn main() { println!("inception-chain-ok"); }' ;;
+ c) echo '#include
+int main() { printf("inception-chain-ok\n"); return 0; }' ;;
+ cpp) echo '#include
+int main() { std::cout << "inception-chain-ok" << std::endl; return 0; }' ;;
+ java) echo 'public class Main { public static void main(String[] args) { System.out.println("inception-chain-ok"); } }' ;;
+ kotlin) echo 'fun main() { println("inception-chain-ok") }' ;;
+ swift) echo 'print("inception-chain-ok")' ;;
+ csharp) echo 'System.Console.WriteLine("inception-chain-ok");' ;;
+ fsharp) echo 'printfn "inception-chain-ok"' ;;
+ haskell) echo 'main = putStrLn "inception-chain-ok"' ;;
+ ocaml) echo 'print_endline "inception-chain-ok"' ;;
+ d) echo 'import std.stdio; void main() { writeln("inception-chain-ok"); }' ;;
+ nim) echo 'echo "inception-chain-ok"' ;;
+ zig) echo 'const std = @import("std"); pub fn main() void { std.debug.print("inception-chain-ok\n", .{}); }' ;;
+ crystal) echo 'puts "inception-chain-ok"' ;;
+ fortran) echo "program main; print *, 'inception-chain-ok'; end program" ;;
+ cobol) echo 'IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. PROCEDURE DIVISION. DISPLAY "inception-chain-ok". STOP RUN.' ;;
+ objc) echo '#import
+int main() { NSLog(@"inception-chain-ok"); return 0; }' ;;
+ dart) echo 'void main() { print("inception-chain-ok"); }' ;;
+ v) echo 'fn main() { println("inception-chain-ok") }' ;;
*) echo 'print("inception-chain-ok")' ;;
esac
}