make check fails (python yaml problem)

Bug #1552754 reported by Roger Mason
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
BigDFT
Invalid
High
Unassigned

Bug Description

libyaml-0.1.6_2 py27-yaml-3.11 bigdft 1.7.7 FreeBSD 10.2

cryptoperthite tests gmake check
Making check in DFT
gmake[1]: Entering directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT'
Making check in cubic
gmake[2]: Entering directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT/cubic'
gmake[3]: Entering directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT/cubic/C-test'
gmake[3]: 'C.psp' is up to date.
gmake[3]: Leaving directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT/cubic/C-test'
gmake[3]: Entering directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT/cubic/C-test'
gmake[3]: 'C-test.post-in' is up to date.
gmake[3]: Leaving directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT/cubic/C-test'
Input prepared in "C-test" directory, make C.run available
touch C.in
==============================================
Will run tests in parallel with 'mpirun -np 2'
==============================================
gmake[3]: Entering directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT/cubic/C-test'
gmake[3]: 'C.out.out' is up to date.
gmake[3]: Leaving directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT/cubic/C-test'
Tests have run in "C-test" directory, make C.check available
gmake[3]: Entering directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT/cubic/C-test'
python /home/rmason/Software/BigDFT/64-bit/../bigdft-1.7.7/tests/fldiff_yaml.py -r C.out.ref.yaml -d log-C.yaml -t /home/rmason/Software/BigDFT/64-bit/../bigdft-1.7.7/tests/tols-BigDFT.yaml --label=C -o C.out.report.yaml
Traceback (most recent call last):
  File "/home/rmason/Software/BigDFT/64-bit/../bigdft-1.7.7/tests/fldiff_yaml.py", line 356, in <module>
    open(args.ref, "r").read(), Loader=yaml.CLoader)]
AttributeError: 'module' object has no attribute 'CLoader'
../Makefile:556: recipe for target 'C.out.report.yaml' failed
gmake[3]: *** [C.out.report.yaml] Error 1
gmake[3]: Leaving directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT/cubic/C-test'
Makefile:759: recipe for target 'C.yaml-check' failed
gmake[2]: *** [C.yaml-check] Error 2
rm C.run
gmake[2]: Leaving directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT/cubic'
Makefile:402: recipe for target 'check-recursive' failed
gmake[1]: *** [check-recursive] Error 1
gmake[1]: Leaving directory '/home/rmason/Software/BigDFT/64-bit/tests/DFT'
Makefile:420: recipe for target 'check-recursive' failed
gmake: *** [check-recursive] Error 1

Revision history for this message
Luigi Genovese (luigi-genovese) wrote :

This is not a bug, but a weakness of the present build system.

The " make check" command has to be launched from the tob builddir directory instaed that from test.
this will be corrected in the forthcoming release.

Many thanks

Luigi

Changed in bigdft:
status: New → Invalid
importance: Undecided → High
Revision history for this message
Roger Mason (rmason-8) wrote : Re: [Bug 1552754] Re: make check fails (python yaml problem)

Hello,

Luigi Genovese <email address hidden> writes:

> This is not a bug, but a weakness of the present build system.
>
> The " make check" command has to be launched from the tob builddir directory instaed that from test.
> this will be corrected in the forthcoming release.

I have the same problem running from the top build directory:

cryptoperthite 64-bit gmake check
Making check in flib
gmake[1]: Entering directory '/home/rmason/Software/BigDFT/64-bit/flib'
Making check in src
gmake[2]: Entering directory '/home/rmason/Software/BigDFT/64-bit/flib/src'
test -e "../../includes" || /usr/bin/install -c -d -m 755 ../../includes
for mod in "yaml_strings.mod dictionaries.mod dictionaries_base.mod f_enums.mod f_precisions.mod yaml_output.mod yaml_parse.mod metadata_interfaces.mod module_f_malloc.mod dynamic_memory.mod randomdata.mod memory_profiling.mod f_utils.mod f_input_file.mod f_refcnts.mod f_trees.mod exception_callbacks.mod time_profiling.mod" ; do \
  /usr/bin/install -c -m 644 $mod ../../includes ; \
done
gmake[2]: Leaving directory '/home/rmason/Software/BigDFT/64-bit/flib/src'
Making check in tests
gmake[2]: Entering directory '/home/rmason/Software/BigDFT/64-bit/flib/tests'
gmake yaml_test
gmake[3]: Entering directory '/home/rmason/Software/BigDFT/64-bit/flib/tests'
gmake[3]: 'yaml_test' is up to date.
gmake[3]: Leaving directory '/home/rmason/Software/BigDFT/64-bit/flib/tests'
export PYTHONPATH=/opt/lib/root:/opt/lib/root: ; \
export LD_LIBRARY_PATH=:/opt/local/lib:/opt/lib/root:/opt/lib:/opt/local/lib:/opt/lib/root:/opt/lib ; \
python ../../../bigdft-1.7.7/tests/fldiff_yaml.py --label yaml_test -t ../../../bigdft-1.7.7/tests/tols-BigDFT.yaml \
        -r /home/rmason/Software/BigDFT/64-bit/../bigdft-1.7.7/flib/tests/yaml_test.ref.yaml -d yaml_test.out.yaml --output yaml_test.report.yaml
Traceback (most recent call last):
  File "../../../bigdft-1.7.7/tests/fldiff_yaml.py", line 356, in <module>
    open(args.ref, "r").read(), Loader=yaml.CLoader)]
AttributeError: 'module' object has no attribute 'CLoader'
Makefile:628: recipe for target 'yaml_test.report.yaml' failed
gmake[2]: *** [yaml_test.report.yaml] Error 1
gmake[2]: Leaving directory '/home/rmason/Software/BigDFT/64-bit/flib/tests'
Makefile:397: recipe for target 'check-recursive' failed
gmake[1]: *** [check-recursive] Error 1
gmake[1]: Leaving directory '/home/rmason/Software/BigDFT/64-bit/flib'
Makefile:532: recipe for target 'check-recursive' failed
gmake: *** [check-recursive] Error 1

Cheers,
Roger

Revision history for this message
Luigi Genovese (luigi-genovese) wrote :

It seems that the code did not installed PyYaml.

The command:

export PYTHONPATH=/opt/lib/root:/opt/lib/root: ; \
export LD_LIBRARY_PATH=:/opt/local/lib:/opt/lib/root:/opt/lib:/opt/local/lib:/opt/lib/root:/opt/lib ;

which is now launched as make is ran from the builddir, does not contain the output of

ls -d $(abs_top_builddir)/PyYAML-3.10/build/lib.*

Do you have a clue on why pyaml did not compile on your build?
Also, the code should have added the
<top_builddir>/yaml-0.1.4/src/.libs

directory to the LD_LIBRARY_PATH.

Note that there is not need of pyyaml to run the code, but only to verify the tests.

Do not hesitate

Many thanks

Luigi

Revision history for this message
Roger Mason (rmason-8) wrote :

Hi Luigi,

Luigi Genovese <email address hidden> writes:

> The command:
>
> export PYTHONPATH=/opt/lib/root:/opt/lib/root: ; \
> export
> LD_LIBRARY_PATH=:/opt/local/lib:/opt/lib/root:/opt/lib:/opt/local/lib:/opt/lib/root:/opt/lib
> ;
>
> which is now launched as make is ran from the builddir, does not contain
> the output of
>
> ls -d $(abs_top_builddir)/PyYAML-3.10/build/lib.*
>
> Do you have a clue on why pyaml did not compile on your build?
> Also, the code should have added the
> <top_builddir>/yaml-0.1.4/src/.libs
>
> directory to the LD_LIBRARY_PATH.

The relevant lines are commented out in the builddir Makefile:

# This is required for testing.
#LD_LIBRARY_PATH := ${LD_LIBRARY_PATH}:$(abs_top_builddir)/yaml-0.1.4/src/.libs

# Required by tests
#PYTHONPATH := ${PYTHONPATH}:`ls -d
#$(abs_top_builddir)/PyYAML-3.10/build/lib.*`

I have no idea why this happened.

Cheers,
Roger

Revision history for this message
Roger Mason (rmason-8) wrote :

Hi Luigi,

Luigi Genovese <email address hidden> writes:

> Do you have a clue on why pyaml did not compile on your build?

It looks like it is necessary to configure with --enable-internal-yaml
in order to get PyYAML and libYAML built. I have not yet run the tests
but will report back when I have done so.

Cheers,
Roger

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.