mirror of https://github.com/QMCPACK/qmcpack.git
85 lines
2.1 KiB
Python
Executable File
85 lines
2.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
# unit test GPAW4QMCPACK
|
|
|
|
# TODO: implement and test converter generated QMCPACK input
|
|
|
|
def run_gpaw4qmcpack_test(test_name, g4q_exe, h5diff_exe):
|
|
okay = True
|
|
|
|
# Example invocation of converter
|
|
#gpaw4qmcpack infile.gpw outfile.h5 --density
|
|
|
|
infile = 'restart.gpw'
|
|
outfile = 'test.orbs.h5'
|
|
cmd = [g4q_exe,infile,outfile]
|
|
|
|
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
|
|
stdout, stderr = p.communicate()
|
|
|
|
file_out = open('stdout.txt', 'w')
|
|
file_out.write(stdout)
|
|
file_out.close()
|
|
if len(stderr) > 0 :
|
|
file_err = open('stderr.txt', 'w')
|
|
file_err.write(stderr)
|
|
file_err.close()
|
|
|
|
ret = p.returncode
|
|
|
|
if ret != 0:
|
|
print("Return code nonzero: ", ret)
|
|
okay = False
|
|
|
|
if len(stderr.strip()) != 0:
|
|
print("Stderr not empty:")
|
|
print(stderr)
|
|
|
|
ret = os.system(h5diff_exe + ' -d 0.000001 gold.orbs.h5 test.orbs.h5')
|
|
# if it's okay up to this point
|
|
if ret==0 and okay:
|
|
print(" pass")
|
|
return True
|
|
else:
|
|
print("h5diff reported a difference")
|
|
print(" FAIL")
|
|
return False
|
|
|
|
return okay
|
|
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser(description='Test gpaw4qmcpck')
|
|
parser.add_argument('test_name',
|
|
default='test_Si_diamond',
|
|
help='Name of test to run (name of directory)')
|
|
parser.add_argument('--exe',
|
|
default='gpaw4qmcpack',
|
|
help='Location of gpaw4qmcpack executable')
|
|
parser.add_argument('--h5diff',
|
|
default='h5diff',
|
|
help='Location of h5diff executable')
|
|
args = parser.parse_args()
|
|
|
|
test_dir = args.test_name
|
|
if not os.path.exists(test_dir):
|
|
print("Test not found: ", test_dir)
|
|
sys.exit(1)
|
|
|
|
curr_dir = os.getcwd()
|
|
os.chdir(test_dir)
|
|
|
|
ret = run_gpaw4qmcpack_test(test_dir, args.exe, args.h5diff)
|
|
|
|
os.chdir(curr_dir)
|
|
|
|
if ret:
|
|
sys.exit(0)
|
|
sys.exit(1)
|
|
|