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