Re: [easybuild] Running tests in an EasyConfig
Dear Jacob: You can set a different module name with the dictionary key 'modulename' in exts_list. If there is no module that can be imported in Python, you can set it to False. Cheers, Sam On Mon, Dec 14, 2020 at 12:28 PM Jakob Schiøtz wrote: > > > On 14 Dec 2020, at 11.16, Kenneth Hoste wrote: > > > > Hi Jakob, > > > > On 14/12/2020 11:07, Jakob Schiøtz wrote: > >>> On 14 Dec 2020, at 09.48, Kenneth Hoste > wrote: > >>> > >>> Dear Jakob, > >>> > >>> On 14/12/2020 09:28, Jakob Schiøtz wrote: > Hi EasyBuilders, > I am trying to run the test suite of a Python package (ASE), that I > install as a PythonBundle. However, the test suite seems to be run > *before* the package is installed, at least the binary is not yet there. I > guess it makes sense, many packages have a "make", "make test", "make > install" sequence, but when pip-installing I would like to run the test > suite on the final result. > I added 'runtest': 'ase test' to the dictionary for the specific > package, as adding runtest = 'ase test' to the global PythonBundle resulted > in the test being run before any of the "extensions" were installed, i.e. > before anything was really done. > Ideally, I would like to run the test at the very end after > installing all the packages, but running it after the main package is > installed is also fine. > >>> > >>> I recommend just including "ase test" as a sanity check command, like > this: > >>> > >>> sanity_check_commands = ["ase test"] > >>> > >>> We usually only include short test commands in the sanity check step > though, but it's not a very strict rule... > >> Thank you. I guess I'll skip it for ASE, where the test takes a few > minutes, but include it for gpaw where more could go wrong during > installation, and where there is an utrashort test that just checks that a > small calculation can run (like a five-second test). > > > > A couple of minutes is still OK-ish, as long as it doesn't require a lot > of resources (cores, memory, etc.) > > There is actually a bug in the test suite causing it to fail on the Intel > tool chain (a test requires bitwise identical results, this has been fixed > in the development branch). > > Only slightly related: How do you handle if a module in a PythonBundle is > not importable (because it is an plugin to another module), or where it is > importable under another name than expected by EasyBuild. > > Best regards > > Jakob > > > > > > > > regards, > > > > Kenneth > > > >> Best regards > >> Jakob > >>> > >>> > >>> regards, > >>> > >>> Kenneth > >>> > Best regards > Jakob > -- > Jakob Schiøtz, professor, Ph.D. > Department of Physics > Technical University of Denmark > DK-2800 Kongens Lyngby, Denmark > http://www.fysik.dtu.dk/~schiotz/ > >
Re: [easybuild] Running tests in an EasyConfig
> On 14 Dec 2020, at 11.16, Kenneth Hoste wrote: > > Hi Jakob, > > On 14/12/2020 11:07, Jakob Schiøtz wrote: >>> On 14 Dec 2020, at 09.48, Kenneth Hoste wrote: >>> >>> Dear Jakob, >>> >>> On 14/12/2020 09:28, Jakob Schiøtz wrote: Hi EasyBuilders, I am trying to run the test suite of a Python package (ASE), that I install as a PythonBundle. However, the test suite seems to be run *before* the package is installed, at least the binary is not yet there. I guess it makes sense, many packages have a "make", "make test", "make install" sequence, but when pip-installing I would like to run the test suite on the final result. I added 'runtest': 'ase test' to the dictionary for the specific package, as adding runtest = 'ase test' to the global PythonBundle resulted in the test being run before any of the "extensions" were installed, i.e. before anything was really done. Ideally, I would like to run the test at the very end after installing all the packages, but running it after the main package is installed is also fine. >>> >>> I recommend just including "ase test" as a sanity check command, like this: >>> >>> sanity_check_commands = ["ase test"] >>> >>> We usually only include short test commands in the sanity check step >>> though, but it's not a very strict rule... >> Thank you. I guess I'll skip it for ASE, where the test takes a few >> minutes, but include it for gpaw where more could go wrong during >> installation, and where there is an utrashort test that just checks that a >> small calculation can run (like a five-second test). > > A couple of minutes is still OK-ish, as long as it doesn't require a lot of > resources (cores, memory, etc.) There is actually a bug in the test suite causing it to fail on the Intel tool chain (a test requires bitwise identical results, this has been fixed in the development branch). Only slightly related: How do you handle if a module in a PythonBundle is not importable (because it is an plugin to another module), or where it is importable under another name than expected by EasyBuild. Best regards Jakob > > > regards, > > Kenneth > >> Best regards >> Jakob >>> >>> >>> regards, >>> >>> Kenneth >>> Best regards Jakob -- Jakob Schiøtz, professor, Ph.D. Department of Physics Technical University of Denmark DK-2800 Kongens Lyngby, Denmark http://www.fysik.dtu.dk/~schiotz/
Re: [easybuild] Running tests in an EasyConfig
Hi Jakob, On 14/12/2020 11:07, Jakob Schiøtz wrote: On 14 Dec 2020, at 09.48, Kenneth Hoste wrote: Dear Jakob, On 14/12/2020 09:28, Jakob Schiøtz wrote: Hi EasyBuilders, I am trying to run the test suite of a Python package (ASE), that I install as a PythonBundle. However, the test suite seems to be run *before* the package is installed, at least the binary is not yet there. I guess it makes sense, many packages have a "make", "make test", "make install" sequence, but when pip-installing I would like to run the test suite on the final result. I added 'runtest': 'ase test' to the dictionary for the specific package, as adding runtest = 'ase test' to the global PythonBundle resulted in the test being run before any of the "extensions" were installed, i.e. before anything was really done. Ideally, I would like to run the test at the very end after installing all the packages, but running it after the main package is installed is also fine. I recommend just including "ase test" as a sanity check command, like this: sanity_check_commands = ["ase test"] We usually only include short test commands in the sanity check step though, but it's not a very strict rule... Thank you. I guess I'll skip it for ASE, where the test takes a few minutes, but include it for gpaw where more could go wrong during installation, and where there is an utrashort test that just checks that a small calculation can run (like a five-second test). A couple of minutes is still OK-ish, as long as it doesn't require a lot of resources (cores, memory, etc.) regards, Kenneth Best regards Jakob regards, Kenneth Best regards Jakob -- Jakob Schiøtz, professor, Ph.D. Department of Physics Technical University of Denmark DK-2800 Kongens Lyngby, Denmark http://www.fysik.dtu.dk/~schiotz/
Re: [easybuild] Running tests in an EasyConfig
> On 14 Dec 2020, at 09.48, Kenneth Hoste wrote: > > Dear Jakob, > > On 14/12/2020 09:28, Jakob Schiøtz wrote: >> Hi EasyBuilders, >> I am trying to run the test suite of a Python package (ASE), that I install >> as a PythonBundle. However, the test suite seems to be run *before* the >> package is installed, at least the binary is not yet there. I guess it >> makes sense, many packages have a "make", "make test", "make install" >> sequence, but when pip-installing I would like to run the test suite on the >> final result. >> I added 'runtest': 'ase test' to the dictionary for the specific package, as >> adding runtest = 'ase test' to the global PythonBundle resulted in the test >> being run before any of the "extensions" were installed, i.e. before >> anything was really done. >> Ideally, I would like to run the test at the very end after installing all >> the packages, but running it after the main package is installed is also >> fine. > > I recommend just including "ase test" as a sanity check command, like this: > > sanity_check_commands = ["ase test"] > > We usually only include short test commands in the sanity check step though, > but it's not a very strict rule... Thank you. I guess I'll skip it for ASE, where the test takes a few minutes, but include it for gpaw where more could go wrong during installation, and where there is an utrashort test that just checks that a small calculation can run (like a five-second test). Best regards Jakob > > > regards, > > Kenneth > >> Best regards >> Jakob >> -- >> Jakob Schiøtz, professor, Ph.D. >> Department of Physics >> Technical University of Denmark >> DK-2800 Kongens Lyngby, Denmark >> http://www.fysik.dtu.dk/~schiotz/
Re: [easybuild] Running tests in an EasyConfig
Dear Jakob, On 14/12/2020 09:28, Jakob Schiøtz wrote: Hi EasyBuilders, I am trying to run the test suite of a Python package (ASE), that I install as a PythonBundle. However, the test suite seems to be run *before* the package is installed, at least the binary is not yet there. I guess it makes sense, many packages have a "make", "make test", "make install" sequence, but when pip-installing I would like to run the test suite on the final result. I added 'runtest': 'ase test' to the dictionary for the specific package, as adding runtest = 'ase test' to the global PythonBundle resulted in the test being run before any of the "extensions" were installed, i.e. before anything was really done. Ideally, I would like to run the test at the very end after installing all the packages, but running it after the main package is installed is also fine. I recommend just including "ase test" as a sanity check command, like this: sanity_check_commands = ["ase test"] We usually only include short test commands in the sanity check step though, but it's not a very strict rule... regards, Kenneth Best regards Jakob -- Jakob Schiøtz, professor, Ph.D. Department of Physics Technical University of Denmark DK-2800 Kongens Lyngby, Denmark http://www.fysik.dtu.dk/~schiotz/