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

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

Merged
merged 3 commits into from
Aug 1, 2019

Conversation

shssf
Copy link
Contributor

@shssf shssf commented Jul 31, 2019

  • Python sources can not be fully fixed automatically for all rules required by pep8
  • Excluded E265,W503 rules from style check due to reason above. Can be get them back in future.
  • Algorithm improvement might be addressed in other PRs
  • Only build and .git directories and sub directory excluded from search paths

To see documentation please use python ./setup.py --help-commands for new build option and python ./setup.py style --help for its parameter

exit(1)

# Python files handling
py_files = self._get_file_list(root_dir, self._py_file_extensions)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you should use pycodestyle itself? For example, pycodestyle hpat -q command will return a list of files from hpat dir that do not satisfy for PEP8 style.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know a way to exclude build directory from file list provided by command pycodestyle -q? Because pycodestyle hpat -q gives the list in subdirectory only.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something like that: pycodestyle -q --exclude build,examples,docs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have an experience with yapf? @fschlimb requested to move to this tool. Do you think it is better to stay with pycodestyle?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have any experience with yapf.

Probably better to choose the tool with which one of you worked the longest and has significant experience. Moreover, in case the tool needs to be changed for some reason I do not see the problem of switching to a new one.

I suggest to stay on yapf and move on to solving other problems :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and move on to solving other problems

Completely agree!!!

Copy link
Contributor

@fschlimb fschlimb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you provide doc-strings for new classes and functions?

# E265 and W503 excluded because I didn't find a way to apply changes automatically
_py_checker_command_line = [_py_checker, '--ignore=E265,W503']
_py_formatter_command_line = [_py_formatter, '--in-place', '--aggressive', '--aggressive']
_py_file_extensions = ['.py']
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about using yapf? Seems to produce nicer code.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you try it? I looked to yapf briefly and stay with pep8 (autopep8 and pystyle as successors). I have no objections to use yapf for pyton part of sources.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No I didn't. I like their approach, though. Can autopep8 be used a python library?
Also, do the clang bindings for python allow using the code-formatting tool (without using a command-line tool through opening a pipe)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fschlimb I tried yapf -i ./setup.py and found:

  • it has same limitations as autopep8 (E501, E265)
  • it formats code worse than autopep8 -i ./setup.py (look into Extension lines formatting)
    I didn't find python module for clang-format.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, let's get something done that's reasonable and improve as needed.

else:
command_output = subprocess.Popen(
self._py_formatter_command_line + [f])
command_output.wait()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe autopep8 also allows this, but yapf would allow to simplify this: just call yapf.yapflib.yapf_api.FormatFile(f) instead of using a pipe.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It require a check for yapf module unavailability. If it is ok I will implement.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I understand what you mean. In this python else branch you can just import it. If it's not available you will get a meaningful error.
As mentioned elsewhere, installing packages in setup.py should be avoided. So we'd have the same issue with autopep8.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can just import

What is no yapf package installed in the system? In this case the user take long, confused python error message. I think we need to provide simple, readable message about this. To do this I need to check the package availability first. it is not big code (several lines) but i think it should be.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, I don't think the error message is hard to read. But you can just wrap the import in a try/except and print an error of your liking.

command_output.wait()
except BaseException:
print("%s is not installed.\nPlease use: %s" % (self._py_formatter, self._py_formatter_install_msg))
exit(1)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a rather generic except, but the message is very specific. This can be very confusing if something else goes wrong. This should at least print the actual exception (message).
Using a python module rather than a pipe/process will also help with better error messages.

_project_directory_excluded = ['build', '.git']

_c_formatter = 'clang-format-6.0'
_c_formatter_install_msg = 'pip install clang'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I looked here, this command does not install clang itself. Where is the code that installs clang?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should not pip install anything in the first place. Just import what you need. setup.py should not modify the user's python env. It is possible to import only when really running 'style' so you're not dependent on it if you don't. But I don't see where this is using the clang package anyway.

Copy link
Contributor Author

@shssf shssf Aug 1, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I looked here, this command does not install clang itself. Where is the code that installs clang?

I had no task to install clang. I just looked for clang-format tool installation. clang-format is one of a tool in clang package.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

setup.py should not modify the user's python env

It is not implemented in this PR. This line is just help message.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops...

Copy link
Contributor

@fschlimb fschlimb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good feature to have!
Pls improve the try/except/error message.

@shssf
Copy link
Contributor Author

shssf commented Aug 1, 2019

I addressed part of comments.

  • I did not change autopep8 to yapf due to yapf provide worse formatting.
  • I didn't implement Python module based style check/adjustment. Currently it works consistently for C and Pyton sources. If somebody want to do this, please address this in separate PR.

@shssf shssf merged commit 446bf5f into master Aug 1, 2019
@shssf shssf deleted the hpat_style_check_procedure branch August 1, 2019 21:20
Vyacheslav-Smirnov pushed a commit to Vyacheslav-Smirnov/sdc that referenced this pull request Aug 7, 2019
* HPAT Build: Code style check for C and Python sources

* PR103. Comments partially addressed
Vyacheslav-Smirnov added a commit to Vyacheslav-Smirnov/sdc that referenced this pull request Aug 7, 2019
Vyacheslav-Smirnov added a commit to Vyacheslav-Smirnov/sdc that referenced this pull request Aug 7, 2019
shssf pushed a commit that referenced this pull request Aug 8, 2019
* 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)

* 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.

* Unskip passing dataframe tests

Actually, following tests in test_dataframe.py are pass and can be unskipped:
test_create1
test_len1
test_column_getitem1
test_df_apply
test_df_apply_branch
test_df_describe
test_count1
test_append1

At the same time, test_sort_parallel and test_sort_parallel_single_col
has some problems with __pycache__:
 - They are passed if execute the suite with -B
 - They are passed if execute them separate
 - They and failed when some tests above are unskipped.
So, decide to skip them.
shssf pushed a commit that referenced this pull request Aug 13, 2019
* 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
kozlov-alexey pushed a commit to kozlov-alexey/sdc that referenced this pull request Oct 4, 2019
* HPAT Build: Code style check for C and Python sources

* PR103. Comments partially addressed
kozlov-alexey pushed a commit to kozlov-alexey/sdc that referenced this pull request Oct 4, 2019
* Remove spark dependency (IntelPython#102)

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

* explicitly adding data-file (IntelPython#104)

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

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

* PR103. Comments partially addressed

* Code style change part 1 (IntelPython#106)

* Style check config fo pystyle (IntelPython#105)

* Fix for pandas.merge wrong overload handling of 'on' args (IntelPython#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' (IntelPython#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 (IntelPython#107)

* code_style_change_part_2

* Add more check in style configuration (IntelPython#108)

* code_style_part_3 (IntelPython#109)

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

* Code style change part 4 (IntelPython#110)

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

This reverts commit dfc54ee.

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

This reverts commit 231a76c.

* Revert "code_style_part_3 (IntelPython#109)"

This reverts commit 4070ce3.

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

This reverts commit abf5bd0.

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

This reverts commit 9076493.

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

This reverts commit 8641f7a.

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

This reverts commit a2a8ee5.

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

This reverts commit 551c0e3.

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

This reverts commit 6dae0b3.

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

This reverts commit 1a30e4f.

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

This reverts commit 34a2260.

* Revert "Remove spark dependency (IntelPython#102)"

This reverts commit 9e77fde.

* Unskip passing dataframe tests

Actually, following tests in test_dataframe.py are pass and can be unskipped:
test_create1
test_len1
test_column_getitem1
test_df_apply
test_df_apply_branch
test_df_describe
test_count1
test_append1

At the same time, test_sort_parallel and test_sort_parallel_single_col
has some problems with __pycache__:
 - They are passed if execute the suite with -B
 - They are passed if execute them separate
 - They and failed when some tests above are unskipped.
So, decide to skip them.
kozlov-alexey pushed a commit to kozlov-alexey/sdc that referenced this pull request Oct 4, 2019
* Remove spark dependency (IntelPython#102)

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

* explicitly adding data-file (IntelPython#104)

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

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

* PR103. Comments partially addressed

* Code style change part 1 (IntelPython#106)

* Style check config fo pystyle (IntelPython#105)

* Fix for pandas.merge wrong overload handling of 'on' args (IntelPython#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' (IntelPython#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 (IntelPython#107)

* code_style_change_part_2

* Add more check in style configuration (IntelPython#108)

* code_style_part_3 (IntelPython#109)

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

* Code style change part 4 (IntelPython#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 (IntelPython#110)"

This reverts commit dfc54ee.

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

This reverts commit 231a76c.

* Revert "code_style_part_3 (IntelPython#109)"

This reverts commit 4070ce3.

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

This reverts commit abf5bd0.

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

This reverts commit 9076493.

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

This reverts commit 8641f7a.

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

This reverts commit a2a8ee5.

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

This reverts commit 551c0e3.

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

This reverts commit 6dae0b3.

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

This reverts commit 1a30e4f.

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

This reverts commit 34a2260.

* Revert "Remove spark dependency (IntelPython#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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants