Before:
  let g:exists = exists('$TMPDIR')
  let g:old_value = $TMPDIR

After:
  if g:exists
    let $TMPDIR = g:old_value
  else
    silent! unlet! $TMPDIR
  endif

  unlet! g:exists
  unlet! g:old_value

Execute(ale#util#Tempname shouldn't set $TMPDIR to an empty string if it isn't set):
  " You can't run this test twice on old Vim versions.
  if has('unix')
    Assert ale#util#Tempname() =~# '^/tmp'
    Assert !exists('$TMPDIR'), '$TMPDIR exists where it shouldn''t'
  endif

Execute(ale#util#Tempname shouldn't replace $TMPDIR and reset them to an empty string.):
  if has('unix')
    let $TMPDIR = ''
    Assert ale#util#Tempname() =~# '^/tmp'

    if !has('nvim')
      Assert exists('$TMPDIR'), '$TMPDIR doesn''t exist where it should'
    endif

    AssertEqual '', $TMPDIR
  endif