summary refs log tree commit diff stats
path: root/test/tc_directory.py
Commit message (Collapse)AuthorAgeFilesLines
* added copyright info to config files and test caseshut2010-03-081-0/+15
|
* fsobject.directory: removed __getitem__ (too ambiguous)hut2010-01-131-2/+0
|
* fixed directory testhut2009-12-141-0/+3
|
* updated / added testshut2009-12-131-4/+4
|
* clean ups, commentshut2009-12-131-4/+7
|
* clean upshut2009-12-111-4/+1
|
* Reorganization of gui/widget hierarchy and directory structurehut2009-12-111-1/+1
|
* restructurationshut2009-12-111-2/+2
|
* fixed directory testhut2009-12-061-19/+0
|
* random improvementshut2009-11-291-17/+18
|
* more VROOMhut2009-11-271-12/+20
|
* implemented more stuffhut2009-11-251-9/+10
|
* corrected test, added some stuffhut2009-11-241-5/+24
|
* stuffhut2009-11-241-1/+2
|
* better implementation of directories/fileshut2009-11-241-25/+49
|
* test cases for directory.pyhut2009-11-231-0/+67
id='n274' href='#n274'>274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335
e519d'>f88f77cd ^
6e1eeeeb ^
b2c8b732 ^

14a06183 ^

b2c8b732 ^
4c131b38 ^
85eb8167 ^
f88f77cd ^
2844327a ^



a5fa9785 ^
8e607b12 ^
eafdbfc1 ^
2844327a ^

2844327a ^
85eb8167 ^
2844327a ^
a5fa9785 ^
8e607b12 ^
4c131b38 ^
2844327a ^
8e607b12 ^
2844327a ^






6e1eeeeb ^
6e1eeeeb ^




890df1de ^
c7c8eb0c ^











1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98

                                                  



                                                                                                     


                          
 
                            


                                                              
                                    


                                                                                              
                               



                                                                                        
           
                  
                                                             
                                               
           
 








                                                              
                                            
    
                                        


                                                        
                                                                      
                                                                  
 

                                                                                                                                              

                                                                                                       
 
                        
                                                                                       
                                                                                                   



                                                                                                                                             
                                                                                       
                                  
                                                      

                        
    
                                                                                                                 
                                                
                                                                                                     
                                   
                                                                
             
                               






                                                                 
 




                                                           
 











                                                              
" Highlighting literate directives in C++ sources.
function! HighlightTangledFile()
  " Tangled comments only make sense in the sources and are stripped out of
  " the generated .cc file. They're highlighted same as regular comments.
  syntax match tangledComment /\/\/:.*/ | highlight link tangledComment Comment
  syntax match tangledSalientComment /\/\/::.*/ | highlight link tangledSalientComment SalientComment
  set comments-=://
  set comments-=n://
  set comments+=n://:,n://

  " Inside tangle scenarios.
  syntax region tangleDirective start=+:(+ skip=+".*"+ end=+)+
  highlight link tangleDirective Delimiter
  syntax match traceContains /^+.*/
  highlight traceContains ctermfg=22
  syntax match traceAbsent /^-.*/
  highlight traceAbsent ctermfg=darkred
  syntax match tangleScenarioSetup /^\s*% .*/ | highlight link tangleScenarioSetup SpecialChar
  highlight Special ctermfg=160

  syntax match subxString %"[^"]*"% | highlight link subxString Constant
  " match globals but not registers like 'EAX'
  syntax match subxGlobal %\<[A-Z][a-z0-9_-]*\>% | highlight link subxGlobal SpecialChar
endfunction
augroup LocalVimrc
  autocmd BufRead,BufNewFile *.cc call HighlightTangledFile()
  autocmd BufRead,BufNewFile *.subx set ft=subx
augroup END

" we often want to crib lines of machine code from other files
function! GrepSubX(regex)
  " https://github.com/mtth/scratch.vim
  Scratch!
  silent exec "r !grep -h '".a:regex."' *.subx */*.subx"
endfunction
command! -nargs=1 G call GrepSubX(<q-args>)

if exists("&splitvertical")
  command! -nargs=0 P hor split subx_opcodes
else
  command! -nargs=0 P split subx_opcodes
endif

" useful for inspecting just the control flow in a trace
" see https://github.com/akkartik/mu/blob/main/linux/subx_debugging.md
command! -nargs=0 L exec "%!grep label |grep -v clear-stream:loop"

" show the call stack for the current line in the trace (by temporarily blowing away all earlier lines)
"? command! -nargs=0 C 1,.!awk '$4 == "label"{x[$1] = $0; for(i in x){if(i >= $1){delete x[i]}}} END{for (i in x) {if (i < $1) {print x[i]}}}'
"? command! -nargs=0 C 1,.!awk '$4 == "label"{x[$1] = $0} END{for (i in x) {if (i < $1) {print x[i]}}}'
command! -nargs=0 C 1,.!awk '{x[$1] = $0} END{for (i in x) {if (int(i) < int($1)) {print x[i]}}}'

" run test around cursor
if empty($TMUX) || (system("tmux display-message -p '#{client_control_mode}'") =~ "^1")
  " hack: need to move cursor outside function at start (`{`), but inside function at end (`<C-o>`)
  " this solution is unfortunate, but seems forced:
  "   can't put initial cursor movement inside function because we rely on <C-r><C-w> to grab word at cursor
  "   can't put final cursor movement out of function because that disables the wait for <CR> prompt; function must be final operation of map
  "   can't avoid the function because that disables the wait for <CR> prompt
  noremap <Leader>t {:keeppatterns /^[^ #]<CR>:call RunTestMoveCursor("<C-r><C-w>")<CR>
  function! RunTestMoveCursor(arg)
    exec "!./run_one_test ".expand("%")." '".a:arg."'"
    exec "normal \<C-o>"
  endfunction
else
  " we have tmux and are not in control mode; we don't need to show any output in the Vim pane so life is simpler
  " assume the left-most window is for the shell
  noremap <Leader>t {:keeppatterns /^[^ #]<CR>:silent! call RunTestInFirstPane("<C-r><C-w>")<CR><C-o>
  function! RunTestInFirstPane(arg)
    call RunInFirstPane("./run_one_test ".expand("%")." ".a:arg)
  endfunction
  function! RunInFirstPane(arg)
    exec "!tmux select-pane -t :0.0"
    exec "!tmux send-keys '".a:arg."' C-m"
    exec "!tmux last-pane"
    " for some reason my screen gets messed up, so force a redraw
    exec "!tmux send-keys 'C-l'"
  endfunction
endif

if exists("&splitvertical")
  command! -nargs=0 T badd last_run | sbuffer last_run
else
  command! -nargs=0 T badd last_run | vert sbuffer last_run
endif

inoremap <Leader>a <Esc>F<Space>a(addr <Esc>A)
inoremap <Leader>h <Esc>F<Space>a(handle <Esc>A)
inoremap <Leader>ah <Esc>F<Space>a(addr handle <Esc>A)
inoremap <Leader>aa <Esc>F<Space>a(addr array <Esc>A)
inoremap <Leader>ha <Esc>F<Space>a(handle array <Esc>A)
inoremap <Leader>aha <Esc>F<Space>a(addr handle array <Esc>A)
inoremap <Leader>as <Esc>F<Space>a(addr stream <Esc>A)
inoremap <Leader>hs <Esc>F<Space>a(handle stream <Esc>A)
inoremap <Leader>ahs <Esc>F<Space>a(addr handle stream <Esc>A)
inoremap <Leader>o <Esc>F<Space>a(offset <Esc>A)
inoremap ,- <-
inoremap -. ->