!******************************************************************************!
!  Purpose: Test the SOURCEFILE primitive
!   Author: Jay Hallam
!******************************************************************************!
startmacro

  call setDatDir

  set tfTab {out=test_sourcefile_out}

  pipe on
   sourcefile ^{datDir}.fftdemo.prm _sourceout
   noop _sourceout tfTab.OUT
  pipe off

  assert/text="^reg.main.name: FILE -> PIPE -> FILE - SIZE" FILE(^{datDir}.fftdemo.prm).size EQ FILE(tfTab.OUT).size
  assert/text="^reg.main.name: FILE -> PIPE -> FILE - HEADER/DATA" ^{datDir}.fftdemo.prm FEQ/H/D tfTab.OUT
  warning "^reg.main.name: RTFILE switch not yet tested"

  if /NOERASE isFALSE then
    foreach key INTABLE tfTab
      if tfTab.^key FEXISTS erase tfTab.^Key
    endfor
  endif
endmacro

!******************************************************************************!
procedure processMessage
  if msg.name EQS "MAIN" then
    pipe stop
  else

  endif
return

!******************************************************************************!
! Set the dat directory
!******************************************************************************!
procedure setDatDir
  invoke nxmMajor env.nmversion.subString(0,1)
  invoke major java.lang.Integer.valueOf(nxmMajor)
  if major GE 4 then
    invoke s:datDir           nxm.sys.test.DatLocator.getDatDirLocation()
    invoke s:datDirSlash      nxm.sys.test.DatLocator.getDatDirSlashLocation()
    invoke z:sysDatFull       nxm.sys.test.DatLocator.sysDatFull()
    invoke z:sysTestDatExists nxm.sys.test.DatLocator.sysTestDatExists()
  else
    set s:datDir           "nxm.sys.dat"
    set s:datDirSlash      "nxm/sys/dat"
    set z:sysDatFull       true
    set z:sysTestDatExists false
  endif
return
