tree 3957bf80fca289d20bd1a92bbbbea2f1c3118b46
parent d45362c42be06381ad9469883f8f3f5a4bd9f852
author Marcos B <15697303+gmarcosb@users.noreply.github.com> 1673646794 -0700
committer GitHub <noreply@github.com> 1673646794 -0500
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJjwdLKCRBK7hj4Ov3rIwAA6pAIAAvEbqWPPD2ne0kFoBSXtdos
 tBgaxYCe2WT5M9n26qJMf5dcGLcJM65pRx4PM7cjbi7q893HsP6wuLNSyK4Nu3Yc
 GtV8xdgr8hPADAq0RiIhSl3DbVNi/nR8yDp7LishbdM9a3eJ9GGj4oN3cIH0x+CX
 58dg/3bSAPXL8Q4LWr4ZscTZyXZguoNQ0IYm0jH+STWTJUi8OSByqZrCNsN+dYbE
 Y//gtONmzT6cmSO32XELX3NleVkW6ULA6psP7F8ES/NSjs4PJ7E8HLrsFTctQSQ4
 Np2tmjN1FzYcXd15BvXWT4xhWYcz24ilciJYiLru9ttCtevemXAFlg2NmjMhVmA=
 =YA9x
 -----END PGP SIGNATURE-----
 

First JNI test & changes necessary to make it work (#24355)

* * Change various references of "SessionHandle &" to instead use "const SessionHandle &" to match how SessionHandle is often used as a parameter & to support rvalue
* Add Java/JNI hooks into for-test classes (like MessagingContext) to allow for unit tests of Java & JNI functionality
* Add first JNI unit test, GetConnectedDeviceCallbackJniTest, testing success/failure cases for device callback

* Restyled by whitespace

* Restyled by clang-format

* Restyled by gn

* * Fix a user-reported bug where we were seeing the following callstack:

JNIEnv::NewObject(_jclass*, _jmethodID*, ...)
chip::Controller::GetConnectedDeviceCallback::OnDeviceConnectionFailureFn(void*, chip::ScopedNodeId const&, chip::ChipError)
chip::OperationalSessionSetup::DequeueConnectionCallbacks(chip::ChipError)
chip::OperationalSessionSetup::OnNodeAddressResolutionFailed(chip::PeerId const&, chip::ChipError)
chip::AddressResolve::Impl::Resolver::HandleAction(chip::IntrusiveList<chip::AddressResolve::Impl::NodeLookupHandle, (chip::IntrusiveMode)0, chip::IntrusiveListBaseHook<chip::AddressResolve::Impl::NodeLookupHandle, (chip::IntrusiveMode)0> >::Iterator&)
chip::AddressResolve::Impl::Resolver::HandleTimer()
chip::System::LayerImplSelect::HandleEvents()

Though JNI tests were added to try to catch this at presubmit, those tests did not fail, which leads me to believe there's a difference in the JRE (wherein the version with the user-reported bug), a cast to an int is not being done, whereas in android emulator, the cast to int is done

* Add a README pointing to building android guide & specifying that these tests must be run externally due to android emulator dependency

* Fix path to android_building.md

* Restyled by clang-format

* Restyled by prettier-markdown

* Missed const correctness changes for SessionHandle&

* Restyled by clang-format

* More missed const correctness changes for SessionHandle&

* Restyled by clang-format

* More missed const correctness changes for SessionHandle&

* Restyled by clang-format

* Only build JNI test libs if chip_link_tests

* Restyled by gn

* Add missing tests.gni import

Co-authored-by: Restyled.io <commits@restyled.io>