src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/eval/eval_test.elvts (about) 1 ////////////////////////////////// 2 # $before-chdir and $after-chdir # 3 ////////////////////////////////// 4 5 //in-temp-dir 6 7 ~> use os 8 os:mkdir d 9 var before-dst after-dst 10 set @before-chdir = {|dst| set before-dst = $dst } 11 set @after-chdir = {|dst| set after-dst = $dst } 12 cd d 13 put $before-dst $after-dst 14 ▶ d 15 ▶ d 16 17 //////// 18 # $pid # 19 //////// 20 21 ~> > $pid 0 22 ▶ $true 23 24 //////////////// 25 # $num-bg-jobs # 26 //////////////// 27 28 ~> put $num-bg-jobs 29 ▶ 0 30 31 // TODO(xiaq): Test cases where $num-bg-jobs > 0. This cannot be done with { put 32 // $num-bg-jobs }& because the output channel may have already been closed when 33 // the closure is run. 34 35 ///////// 36 # $args # 37 ///////// 38 39 ~> put $args 40 ▶ [] 41 42 ## non-empty ## 43 //args foo bar 44 ~> put $args 45 ▶ [foo bar] 46 47 //////////////////////// 48 # multiple evaluations # 49 //////////////////////// 50 51 ~> var x = hello 52 ~> put $x 53 ▶ hello 54 55 ## variable shadowing ## 56 // Regression test for b.elv.sh/1213 57 ~> fn f { put old } 58 ~> fn f { put new } 59 ~> f 60 ▶ new 61 62 ## deleting variable ## 63 // Regression test for b.elv.sh/1213 64 ~> var x = foo 65 ~> del x 66 ~> put $x 67 Compilation error: variable $x not found 68 [tty]:1:5-6: put $x