Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GLib] Unit test failed if -DARROW_EXTRA_ERROR_CONTEXT=ON in the C++ build #44483

Closed
hiroyuki-sato opened this issue Oct 21, 2024 · 1 comment

Comments

@hiroyuki-sato
Copy link
Contributor

hiroyuki-sato commented Oct 21, 2024

Describe the bug, including details regarding any error messages, version, and platform.

Unit test failed if -DARROW_EXTRA_ERROR_CONTEXT=ON

screenshot 2024-10-21 16 05 59

Environment

  • Ruby 3.3.4
  • Apache Arrow/red-arrow: 18.0.0-SNAPSHOT (54697ea)
  • OS: macOS 14.7

Reproduce steps

cd cpp/
mkdir build
cmake .. --preset ninja-debug-maximal \
  -DCMAKE_INSTALL_PREFIX=/tmp/local \
  -DARROW_CUDA=OFF \
  -DARROW_SKYHOOK=OFF \
  -DARROW_EXTRA_ERROR_CONTEXT=ON
cmake --build .
cmake --install .
meson setup \
      --backend=ninja \
      --prefix=/tmp/local \
      --libdir=lib \
      --pkg-config-path=/tmp/local/lib/pkgconfig \
      -Ddoc=false \
      -Dvapi=false \
      -Dwerror=false \
      c_glib.build \
      c_glib
ninja -C c_glib.build all
cd c_glib.build
../c_glib/test/run-test.sh

Error

=================================================================================================================================================================================================
F
=================================================================================================================================================================================================
Failure: test_invalid_precision(TestDecimal128DataType)
/Users/user/OpenProjects/arrow/arrow/c_glib/test/test-decimal128-data-type.rb:52:in `test_invalid_precision'
     49:   def test_invalid_precision
     50:     message =
     51:       "[decimal128-data-type][new]: Invalid: Decimal precision out of range [1, 38]: 39"
  => 52:     assert_raise(Arrow::Error::Invalid.new(message)) do
     53:       Arrow::Decimal128DataType.new(39, 1)
     54:     end
     55:   end

<Arrow::Error::Invalid(<[decimal128-data-type][new]: Invalid: Decimal precision out of range [1, 38]: 39>)> expected but was
<Arrow::Error::Invalid(<[decimal128-data-type][new]: Invalid: Decimal precision out of range [1, 38]: 39
/Users/user/OpenProjects/arrow/arrow/cpp/src/arrow/type.cc:1525  ValidateDecimalPrecision<Decimal128Type>(precision)>)
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:715:in `invoke'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:715:in `invoke'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:366:in `block (2 levels) in initialize'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:365:in `catch'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:365:in `block in initialize'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:364:in `each'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:364:in `initialize'
/Users/user/OpenProjects/arrow/arrow/c_glib/test/test-decimal128-data-type.rb:53:in `new'
/Users/user/OpenProjects/arrow/arrow/c_glib/test/test-decimal128-data-type.rb:53:in `block in test_invalid_precision'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:1961:in `block (2 levels) in _assert_raise'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:55:in `block in assert_block'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:1913:in `_wrap_assertion'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:54:in `assert_block'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:1959:in `block in _assert_raise'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:1918:in `_wrap_assertion'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:1945:in `_assert_raise'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:287:in `assert_raise'
/Users/user/OpenProjects/arrow/arrow/c_glib/test/test-decimal128-data-type.rb:52:in `test_invalid_precision'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testcase.rb:871:in `run_test'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testcase.rb:566:in `block (2 levels) in run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/fixture.rb:257:in `run_fixture'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/fixture.rb:292:in `run_setup'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testcase.rb:564:in `block in run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testcase.rb:563:in `catch'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testcase.rb:563:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testsuite.rb:124:in `run_test'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testsuite.rb:53:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testsuite.rb:124:in `run_test'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testsuite.rb:53:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:45:in `block (2 levels) in run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:39:in `catch'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:39:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunner.rb:40:in `start_mediator'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunner.rb:25:in `start'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnerutilities.rb:24:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/autorunner.rb:458:in `block in run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/autorunner.rb:514:in `change_work_directory'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/autorunner.rb:457:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/autorunner.rb:66:in `run'
/Users/user/OpenProjects/arrow/arrow/c_glib/test/run-test.rb:112:in `<main>'
>
=================================================================================================================================================================================================
F
=================================================================================================================================================================================================
Failure: test_invalid_precision(TestDecimal256DataType)
/Users/user/OpenProjects/arrow/arrow/c_glib/test/test-decimal256-data-type.rb:52:in `test_invalid_precision'
     49:   def test_invalid_precision
     50:     message =
     51:       "[decimal256-data-type][new]: Invalid: Decimal precision out of range [1, 76]: 77"
  => 52:     assert_raise(Arrow::Error::Invalid.new(message)) do
     53:       Arrow::Decimal256DataType.new(77, 1)
     54:     end
     55:   end

<Arrow::Error::Invalid(<[decimal256-data-type][new]: Invalid: Decimal precision out of range [1, 76]: 77>)> expected but was
<Arrow::Error::Invalid(<[decimal256-data-type][new]: Invalid: Decimal precision out of range [1, 76]: 77
/Users/user/OpenProjects/arrow/arrow/cpp/src/arrow/type.cc:1538  ValidateDecimalPrecision<Decimal256Type>(precision)>)
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:715:in `invoke'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:715:in `invoke'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:366:in `block (2 levels) in initialize'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:365:in `catch'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:365:in `block in initialize'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:364:in `each'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.4/lib/gobject-introspection/loader.rb:364:in `initialize'
/Users/user/OpenProjects/arrow/arrow/c_glib/test/test-decimal256-data-type.rb:53:in `new'
/Users/user/OpenProjects/arrow/arrow/c_glib/test/test-decimal256-data-type.rb:53:in `block in test_invalid_precision'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:1961:in `block (2 levels) in _assert_raise'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:55:in `block in assert_block'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:1913:in `_wrap_assertion'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:54:in `assert_block'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:1959:in `block in _assert_raise'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:1918:in `_wrap_assertion'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:1945:in `_assert_raise'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/assertions.rb:287:in `assert_raise'
/Users/user/OpenProjects/arrow/arrow/c_glib/test/test-decimal256-data-type.rb:52:in `test_invalid_precision'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testcase.rb:871:in `run_test'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testcase.rb:566:in `block (2 levels) in run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/fixture.rb:257:in `run_fixture'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/fixture.rb:292:in `run_setup'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testcase.rb:564:in `block in run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testcase.rb:563:in `catch'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testcase.rb:563:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testsuite.rb:124:in `run_test'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testsuite.rb:53:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testsuite.rb:124:in `run_test'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/testsuite.rb:53:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:45:in `block (2 levels) in run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:39:in `catch'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:39:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunner.rb:40:in `start_mediator'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunner.rb:25:in `start'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnerutilities.rb:24:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/autorunner.rb:458:in `block in run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/autorunner.rb:514:in `change_work_directory'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/autorunner.rb:457:in `run'
/Users/user/.rbenv.m1/versions/3.3.4/lib/ruby/gems/3.3.0/gems/test-unit-3.6.1/lib/test/unit/autorunner.rb:66:in `run'
/Users/user/OpenProjects/arrow/arrow/c_glib/test/run-test.rb:112:in `<main>'
>
=================================================================================================================================================================================================

Component(s)

GLib

hiroyuki-sato added a commit to hiroyuki-sato/arrow that referenced this issue Oct 21, 2024
@kou kou changed the title [GLib][C++] Unit test failed if -DARROW_EXTRA_ERROR_CONTEXT=ON in the CPP build. [GLib] Unit test failed if -DARROW_EXTRA_ERROR_CONTEXT=ON in the C++ build Oct 21, 2024
kou pushed a commit that referenced this issue Oct 21, 2024
#44484)

### Rationale for this change

Two tests failed if `-DARROW_EXTRA_ERROR_CONTEXT=ON` in the C++ build.

### What changes are included in this PR?

Don't check invalid decimal precision message in test. Because it depends on `-DARROW_EXTRA_ERROR_CONTEXT={ON,OFF}`. Our tests should be stable whether the option value. 

Before this change: compare the exception class and message.
After this change: compare the exception class only.

### Are these changes tested?

YES

Before this change

```
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1962 tests, 2148 assertions, 2 failures, 0 errors, 0 pendings, 14 omissions, 0 notifications
99.8973% passed
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
23.71 tests/s, 25.95 assertions/s
```

After this change

```
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1962 tests, 2148 assertions, 0 failures, 0 errors, 0 pendings, 14 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
23.75 tests/s, 26.00 assertions/s
```

### Are there any user-facing changes?

No.
* GitHub Issue: #44483

Co-Authored-by: Sutou Kouhei <kou@ clear-code.com>

Authored-by: Hiroyuki Sato <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
@kou kou added this to the 19.0.0 milestone Oct 21, 2024
@kou
Copy link
Member

kou commented Oct 21, 2024

Issue resolved by pull request 44484
#44484

@kou kou closed this as completed Oct 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants