Skip to content
This repository has been archived by the owner on Feb 2, 2024. It is now read-only.

Commit

Permalink
Change tests execution (#111)
Browse files Browse the repository at this point in the history
* Remove spark dependency (#102)

Remove spark dependency from HPA; use pre-generated sdf_dt.pq

* explicitly adding data-file (#104)

* HPAT Build: Code style check for C and Python sources (#103)

* HPAT Build: Code style check for C and Python sources

* PR103. Comments partially addressed

* Code style change part 1 (#106)

* Style check config fo pystyle (#105)

* Fix for pandas.merge wrong overload handling of 'on' args (#99)

Problem description: merge_overload and merge_asof_overload functions
use 'on' argument value to compute 'left_on' and 'right_on' arguments
in a way that breaks type stability, causing compilation failure
when 'on' is assigned a StringLiteral value.

Error:
  File "../hpat/hiframes/dataframe_pass.py", line 202, in _run_assign
    return self._run_call(assign, lhs, rhs)
  File "../hpat/hiframes/dataframe_pass.py", line 522, in _run_call
    return self._run_call_join(assign, lhs, rhs)
  File "../hpat/hiframes/dataframe_pass.py", line 1488, in
_run_call_join
    left_on = self._get_const_or_list(left_on_var)
  File "../hpat/hiframes/dataframe_pass.py", line 2135, in
_get_const_or_list
    raise ValueError(err_msg)
ValueError: Failed in hpat mode pipeline (step: typed dataframe pass)
None

Following tests should be fixed with this commit:
    test_join_cat1 (hpat.tests.test_join.TestJoin)
    test_join_cat2 (hpat.tests.test_join.TestJoin)
    test_join_cat_parallel1 (hpat.tests.test_join.TestJoin)
    test_join_datetime_seq1 (hpat.tests.test_join.TestJoin)
    test_join_left_seq1 (hpat.tests.test_join.TestJoin)
    test_join_left_seq2 (hpat.tests.test_join.TestJoin)
    test_join_outer_seq1 (hpat.tests.test_join.TestJoin)
    test_join_right_seq1 (hpat.tests.test_join.TestJoin)
    test_merge_asof_seq1 (hpat.tests.test_join.TestJoin)

* [STL] PEP8 code style for 'test_strings.py', 'test_utils.py', 'test_series.py' (#97)

* pep8 style for 'test_strings.py'; flake8 check successful

* pep8 style for 'test_utils.py'

* pep8 style for 'test_series.py'; more readable

* fixed 'test_string_series'

* removed extra white spaces

* deleted mention of flake8

* trigger build

* Code style change part 2 (#107)

* code_style_change_part_2

* Add more check in style configuration (#108)

* code_style_part_3 (#109)

* Fix boost runtime issue on Ubuntu16.04 with gcc 5.4 (#92)

* Code style change part 4 (#110)

* Cahnge tests execution

Actually test suite should be executed via hpat.runtests:
python -u -m hpat.runtests -v
This resolve the issue with doulbe test suite execution
which occurs due to the "python -u -m unittest -v" command
import all files in tree including runtests.py and runtests.py
triggers 1-st suite execution. Then unittest triggers 2-d.

Add decorator to execute some tests (mostly parallel)
2 or more times (depending on existance of REPEAT_TEST_NUMBER
environment variable)
This should highlight issues like the test fails if executed twice
because is corrupts memory during first execution
(like test_series_head_index_parallel1)

Skip test_series_head_index_parallel1 because it triggers memory
corruption. This should be fixed.

* Revert "Code style change part 4 (#110)"

This reverts commit dfc54ee.

* Revert "Fix boost runtime issue on Ubuntu16.04 with gcc 5.4 (#92)"

This reverts commit 231a76c.

* Revert "code_style_part_3 (#109)"

This reverts commit 4070ce3.

* Revert "Add more check in style configuration (#108)"

This reverts commit abf5bd0.

* Revert "Code style change part 2 (#107)"

This reverts commit 9076493.

* Revert "[STL] PEP8 code style for 'test_strings.py', 'test_utils.py', 'test_series.py' (#97)"

This reverts commit 8641f7a.

* Revert "Fix for pandas.merge wrong overload handling of 'on' args (#99)"

This reverts commit a2a8ee5.

* Revert "Style check config fo pystyle (#105)"

This reverts commit 551c0e3.

* Revert "Code style change part 1 (#106)"

This reverts commit 6dae0b3.

* Revert "HPAT Build: Code style check for C and Python sources (#103)"

This reverts commit 1a30e4f.

* Revert "explicitly adding data-file (#104)"

This reverts commit 34a2260.

* Revert "Remove spark dependency (#102)"

This reverts commit 9e77fde.

* Wrap functions to be executed twice in runtests.py

* Update runtests.py

Execute every test specified times, which is set via
the REPEAT_TEST_NUMBER environment variable.

Skip test_series_list_str_unbox1 because is fails on the second
launch with Segmentation fault

* Apply comments from review

Rename REPEAT_TEST_NUMBER to HPAT_REPEAT_TEST_NUMBER
Use os.getenv to get value for HPAT_REPEAT_TEST_NUMBER
  • Loading branch information
Vyacheslav-Smirnov authored and shssf committed Aug 13, 2019
1 parent e1ba769 commit 43f3c88
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 5 deletions.
4 changes: 2 additions & 2 deletions buildscripts/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
source activate $CONDA_ENV

# generate test data for test_io
python hpat/tests/gen_test_data.py
python -m hpat.tests.gen_test_data

if [ "$RUN_COVERAGE" == "yes" ]; then
export PYTHONPATH=.
coverage erase
coverage run --source=./hpat --omit ./hpat/ml/*,./hpat/xenon_ext.py,./hpat/ros.py,./hpat/cv_ext.py,./hpat/tests/* -m unittest
else
mpiexec -n $NUM_PES python -u -m unittest -v
mpiexec -n $NUM_PES python -u -m hpat.runtests -v
fi
25 changes: 24 additions & 1 deletion hpat/runtests.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,33 @@
import os
import unittest
import hpat.tests

"""
Every test in suite can be executed specified times using
desired value for HPAT_REPEAT_TEST_NUMBER environment variable.
This can be used to locate scpecific failures occured
on next execution of affected test.
loadTestsFromModule returns TestSuite obj with _tests member
which contains further TestSuite instanses for each found testCase:
hpat_tests = TestSuite(hpat.tests)
TestSuite(hpat.tests)._tests = [TestSuite(hpat.tests.TestBasic), TestSuite(hpat.tests.TestDataFrame), ...]
TestSuite(hpat.tests.TestBasic)._tests = [TestBasic testMethod=test_array_reduce, ...]
"""
def load_tests(loader, tests, pattern):
suite = unittest.TestSuite()
suite.addTests(loader.loadTestsFromModule(hpat.tests))
hpat_tests = loader.loadTestsFromModule(hpat.tests)
repeat_test_number = int(os.getenv('HPAT_REPEAT_TEST_NUMBER', '1'))

if repeat_test_number > 1:
for i, test_case in enumerate(hpat_tests):
extended_tests = []
for test in test_case:
for _ in range(repeat_test_number):
extended_tests.append(test)
hpat_tests._tests[i]._tests = extended_tests

suite.addTests(hpat_tests)
return suite


Expand Down
5 changes: 3 additions & 2 deletions hpat/tests/test_series.py
Original file line number Diff line number Diff line change
Expand Up @@ -591,6 +591,7 @@ def test_impl():

pd.testing.assert_series_equal(hpat_func(), test_impl())

@unittest.skip("ERROR: Segmentation fault on the second launch (using HPAT_REPEAT_TEST_NUMBER=2)")
def test_series_list_str_unbox1(self):
def test_impl(A):
return A.iloc[0]
Expand Down Expand Up @@ -1314,9 +1315,9 @@ def test_impl():
Exact errors:
1. Segmentation fault in TestBasic.test_rebalance
2. FAIL in TestBasic.test_astype with following error message:
test_astype (hpat.tests.test_basic.TestBasic) ...
test_astype (hpat.tests.test_basic.TestBasic) ...
Fatal error in MPI_Allreduce: Message truncated, error stack:
MPI_Allreduce(907)..................: MPI_Allreduce(sbuf=0x7ffe3b734128, rbuf=0x7ffe3b734120, count=1,
MPI_Allreduce(907)..................: MPI_Allreduce(sbuf=0x7ffe3b734128, rbuf=0x7ffe3b734120, count=1,
MPI_LONG_LONG_INT, MPI_SUM, MPI_COMM_WORLD) failed
MPIR_Allreduce_impl(764)............:
MPIR_Allreduce_intra(238)...........:
Expand Down

0 comments on commit 43f3c88

Please sign in to comment.