Include: include/setup.vader

Execute (NEOMAKE_FILE with tempfile):
  let maker = {
  \ 'exe': 'cat',
  \ 'args': '$NEOMAKE_FILE',
  \ 'append_file': 1,
  \ 'errorformat': '%m'}
  new
  normal! iline1
  let b:neomake_tempfile_enabled = 1

  call neomake#Make(1, [maker])
  AssertEqual $NEOMAKE_FILE, ''
  if has('patch-8.0.0902') && has('patch-8.0.1832')
    Assert !exists('$NEOMAKE_FILE')
  endif
  NeomakeTestsWaitForFinishedJobs

  AssertEqual map(getloclist(0), 'v:val.text'), ['line1', 'line1']
  bwipe!

Execute (NEOMAKE_FILE with tempfile gets restored):
  let maker = {
  \ 'exe': 'cat',
  \ 'args': '$NEOMAKE_FILE',
  \ 'append_file': 1,
  \ 'errorformat': '%m'}
  new
  normal! iline1
  let b:neomake_tempfile_enabled = 1

  Save $NEOMAKE_FILE
  let $NEOMAKE_FILE = 'orig'
  call neomake#Make(1, [maker])
  AssertEqual $NEOMAKE_FILE, 'orig'
  NeomakeTestsWaitForFinishedJobs

  AssertEqual map(getloclist(0), 'v:val.text'), ['line1', 'line1']
  bwipe!

Execute (NEOMAKE_FILE with tempfile gets only used with append_file):
  let maker = {
  \ 'exe': 'echo',
  \ 'args': 'NEOMAKE_FILE:$NEOMAKE_FILE',
  \ 'append_file': 0,
  \ 'errorformat': '%m'}
  new
  let b:neomake_tempfile_enabled = 1

  call neomake#Make(1, [maker])
  NeomakeTestsWaitForFinishedJobs

  AssertEqual map(getloclist(0), 'v:val.text'), ['NEOMAKE_FILE:']
  bwipe!

Execute (NEOMAKE_FILE with real file):
  let maker = {
  \ 'exe': 'echo',
  \ 'args': 'NEOMAKE_FILE:$NEOMAKE_FILE',
  \ 'append_file': 1,
  \ 'errorformat': '%m'}
  new
  edit tests/fixtures/a\ filename\ with\ spaces
  let fname = expand('%')
  let b:neomake_tempfile_enabled = 0

  call neomake#Make(1, [maker])
  NeomakeTestsWaitForFinishedJobs

  AssertEqual map(getloclist(0), 'v:val.text'), [
  \ 'NEOMAKE_FILE:'.fname.' '.fname]
  bwipe!