UNPKG

tcl-js

Version:

tcl-js is a tcl intepreter written completely in Typescript. It is meant to replicate the tcl-sh interpreter as closely as possible.

110 lines (94 loc) 2.48 kB
Commands: 'subtests/commands.yml' Functionality: # Test if TCL is able to load files Files: - name: 'Hello World example' input: type: file value: 'scripts/HelloWorld.tcl' stdout: type: file value: 'results/HelloWorld.txt' # Test if comments are working Comments: - name: Simple input: type: raw value: '# This is a comment' - name: 'Error on missing semicolon' input: type: raw value: 'puts {Bad comment syntax example} # *Error* - no semicolon!' output: type: error value: '' Arguments: 'subtests/arguments.yml' # Test backslash substitution Backslash Substitution: 'subtests/backslash.yml' Square Bracket Substitution: - name: Simple input: type: raw value: 'puts -nonewline [expr 3]' stdout: type: raw value: '3' - name: Nested input: type: raw value: 'puts -nonewline [expr [expr 3 * 3] * 2]' stdout: type: raw value: '18' - name: Backslash input: type: raw value: 'set test [puts [puts hi\nhi]]' stdout: type: raw value: "hi\nhi\n\n" - name: Variables input: type: raw value: 'set test 5; puts -nonewline [expr [expr $test * 3] * 2]' stdout: type: raw value: '30' Variables: 'subtests/variables.yml' Math: 'subtests/math.yml' Lists: - name: Char after brace input: type: raw value: 'set test "hello {there}general kenobi"; puts [lindex $test 1]' output: type: error - name: Spaces input: type: raw value: 'set test "hello {there} general kenobi"; puts [lindex $test 2]' stdout: type: raw value: "general\n" - name: Out of list bounds input: type: raw value: 'set test "hello {there} general kenobi"; puts [lindex $test 5]' stdout: type: raw value: "\n" - name: 'Unfindable word' input: type: raw value: 'set lst "hello there "; lindex $lst 1' output: type: output value: 'there' Argument Expansion: 'subtests/expand.yml' Types: 'subtests/types.js' Scope: Special: 'subtests/scope.js' Errors: 'subtests/errors.yml' Other Tests: 'subtests/main.js' #Execute examples from ./scripts Examples: 'subtests/examples.yml'