about summary refs log blame commit diff stats
path: root/run_one_test
blob: 05c7d75168e0d3dcea913380dd46c8a3992c20a6 (plain) (tree)
1
2
3
4
5
6
7
8
                  
                                                                               
                                                                      

                                                                              


                       



                                                                                 
    
                                  
    


                            
 
      
 






                                                                           
#!/usr/bin/env zsh
# Either run the test with the given name, or rerun the most recently run test.
# Intended to be called from within Vim. Check out the vimrc.vim file.
# Unfortunately this only works with Linux at the moment. Some compiler passes
# take too long to run in emulated mode.

if [[ $2 == 'test-'* ]]
then
  TEST_NAME=$2 envsubst '$TEST_NAME' < run_one_test.subx > /tmp/run_one_test.subx
  FILES=$(ls [0-9]*.subx apps/subx-common.subx $1 |sort |uniq)
  echo $FILES > /tmp/last_run_files
elif [[ -e /tmp/last_run_files ]]
then
  FILES=$(cat /tmp/last_run_files)
else
  echo "no test found"
  exit 0  # don't open trace
fi

set -e

echo "$(date) translating"
# can't just use ntranslate; we need good error messages in the debug cycle
# so we run what we must natively, and emulate the rest
cat $(echo $FILES) /tmp/run_one_test.subx  |apps/sigils   > a.sigils
ONLY_CPP=1 CFLAGS=$CFLAGS ./subx --debug translate a.sigils -o a.elf
echo "$(date) running"
ONLY_CPP=1 CFLAGS=$CFLAGS ./subx --debug --trace run a.elf