Commits

Harald Klimach committed e16b874

Added a unit test for the quadruple interface

Comments (0)

Files changed (3)

source/aotus_module.f90

   ! merely a convenience interface, as the values provided by Lua are only
   ! double precision.
   use aot_quadruple_module
+  use aot_quadruple_table_module
+  use aot_quadruple_top_module
+  use aot_quadruple_vector_module
 
   implicit none
 

utests/quadruple/aot_quadruple_test.f90

+program quadruple_test
+  use flu_binding, only: flu_State
+
+  use aotus_module, only: open_config_file, close_config, aot_get_val
+  use aot_top_module, only: aoterr_Fatal, aoterr_NonExistent, aoterr_WrongType
+
+  implicit none
+
+  integer, parameter :: quad_k = selected_real_kind(33)
+
+  type(flu_State) :: conf
+  integer :: iError
+  real(kind=quad_k) :: glob_quad
+  character(len=80) :: ErrString
+  logical :: passed
+
+  passed = .true.
+
+  call create_script('quad_test_config.lua')
+  write(*,*)
+  write(*,*) 'Running aotus_test...'
+  write(*,*) ' * open_config_file (aotus_test_config.lua)'
+  call open_config_file(L = conf, filename = 'quad_test_config.lua', &
+    &                   ErrCode = iError, ErrString = ErrString)
+  if (iError /= 0) then
+    write(*,*) ' : unexpected FATAL Error occured !!!'
+    write(*,*) ' : Could not open the config file quad_test_config.lua:'
+    write(*,*) trim(ErrString)
+    STOP
+  end if
+  write(*,*) '  : success.'
+
+  ! Testing for global INTEGER
+  write(*,*) ' * reading a global quadruple'
+  call aot_get_val(L = conf, key = 'real_test', &
+    &              val = glob_quad, ErrCode = iError)
+
+  if (btest(iError, aoterr_Fatal)) then
+    write(*,*) '  : unexpected FATAL Error occured !!!'
+    if (btest(iError, aoterr_NonExistent)) &
+      &   write(*,*) '  : Variable not existent!'
+    if (btest(iError, aoterr_WrongType)) &
+      &   write(*,*) '  : Variable has wrong type!'
+    passed = .false.
+  else
+    if (glob_quad == 0.5_quad_k) then
+      write(*,*) '  : success.'
+    else
+      write(*,*) '  : unexpected ERROR, value mismatch, got: ', glob_quad
+      write(*,*) '  :                             should be: ', 0.5
+      passed = .false.
+    end if
+  end if
+
+  write(*,*) ' * close_conf'
+  call close_config(conf)
+  write(*,*) '  : success.'
+  write(*,*) '... Done with aotus_test.'
+  if (passed) then
+    write(*,*) 'PASSED'
+  else
+    write(*,*) 'FAILED'
+  end if
+
+contains
+
+  subroutine create_script(filename)
+    character(len=*) :: filename
+
+    open(file=trim(filename), unit=22, action='write', status='replace')
+    write(22,*) '-- test script for aotus_test'
+    write(22,*) 'int_test = 5'
+    write(22,*) 'long_test = 5000000000'
+    write(22,*) 'real_test = 0.5'
+    write(22,*) 'log_test = true'
+    write(22,*) "string_test = 'last words'"
+    close(22)
+  end subroutine create_script
+
+end program quadruple_test
 
     from waflib.extras import utest_results
     utest_results.utests(bld, 'aotus')
+    if bld.env['quad_support']:
+        utest_results.utests(bld, use = 'aotus', path = 'utests/quadruple')
     bld.add_post_fun(utest_results.summary)
 
     if bld.cmd == 'doxy':
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.