Comments (9)
have you tried re-generate?
yes I did and the generated file was quite small and missed many functions.
After speaking with @cammellos : I found out that we have long abandoned that tool and we edit this file manually.
I will remove this comment in my next PR.
from status-mobile.
Indeed the failure is due to upgrading golang
to 1.20.12
One key thing worth noting is that when I update my overlay.nix
to point go
and buildGoModule
to 1_19
Integration tests start working on MacOS.
This weird failure of contract tests with golang
version 1.20
happens only on MacOS
which is very annoying and we know this does not happen on Linux
else it would also be reproducible on CI
hosts.
from status-mobile.
The key error message to focus on from the stack trace is this
dyld[30877]: missing symbol called
and this happens right after
2024-05-08T14:02:24.489Z DEBUG [utils.re-frame:25] - Handling re-frame event: :wallet/get-wallet-token
My initial guess was that :wallet/get-wallet-token
triggers the failure.
I then commented out this reframe event and that the contract tests would run for longer but eventually fail with the same error message, so :wallet/get-wallet-token
reframe event was not the root cause.
from status-mobile.
dyld[70658]: missing symbol called
typically indicates a problem with dynamic linking in a macOS
application.
dyld
stands for "dynamic linker/loader". It is the component of the macOS
operating system responsible for loading and linking dynamic libraries required by an application at runtime.
So at some point in the test run a "symbol" is not found. If we know which symbol is not found that would help us to narrow down the root cause further.
from status-mobile.
I assume that the source of missing symbols for integration tests could be status.cpp
file located here -> https://github.com/status-im/status-mobile/blob/497c95fd2682653472722f7fcc13ec74e244318e/modules/react-native-status/nodejs/status.cpp
I tried to regenerate this file by using this tool https://github.com/divan/go2nodebinding/tree/master on https://github.com/status-im/status-go/blob/6b5315b1fde8edfd7268eaef41af3ea24412f644/mobile/status.go
But the file contained fewer functions than what we already have.. it could be possible that this file was later on modified by hand rather than being auto generated.
Perhaps @cammellos can assist more since he seems to have some experience with this file.
Maybe @qfrank as well.
Would love to see if we can add some debug statements in this cpp file or in the integration test mechanism itself to figure out why its failing this way and only on MacOS.
from status-mobile.
aha
Line 12 in 497c95f
could be interesting
from status-mobile.
As per golang 1.20 changelog : https://go.dev/doc/go1.20#darwin
Go 1.20 is the last release that will run on macOS 10.13 High Sierra or 10.14 Mojave. Go 1.21 will require macOS 10.15 Catalina or later.
from status-mobile.
I tried this change in status-mobile/binding.gyp
diff --git a/binding.gyp b/binding.gyp
index f161b3299..a0419d0ba 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -8,9 +8,6 @@
"sources": [
"./modules/react-native-status/nodejs/status.cpp"
],
- "xcode_settings": {
- "MACOSX_DEPLOYMENT_TARGET": "10.7"
- },
"libraries": [
"<!(pwd)/result/libstatus.a"
],
@@ -21,7 +18,13 @@
"-framework CoreFoundation",
"-framework CoreServices",
"-framework Security"
- ]
+ ],
+ "xcode_settings": {
+ "GCC_ENABLE_CPP_EXCEPTIONS": "YES",
+ "GCC_ENABLE_CPP_RTTI": "YES",
+ "MACOSX_DEPLOYMENT_TARGET": "11.0",
+ "CLANG_CXX_LANGUAGE_STANDARD": "c++20"
+ },
}]
]
}, {
but the error is still reproducible and I do not get any additional information on the exception.
from status-mobile.
it could be possible that this file was later on modified by hand rather than being auto generated.
well guessed, I just noticed that comment "DO NOT EDIT:..." , have you tried re-generate? @siddarthkay
from status-mobile.
Related Issues (20)
- "Confirm password" and "Continue" buttons are partially hidden on the "Change password" screens
- Collectibles on the L2 are not sent successfully
- Making partially operable key pair to be fully operable
- Routes are not build in the bridge flow HOT 6
- Cover wallet send events with tests HOT 1
- Synced key pairs are not shown in wallet settings until after another login
- Rounding of fiat and token values
- Any link to `status.app` opens in status even if it's not supported
- 🚀 Automate Rebasing and Merging of PRs
- Remove empty box for unhandled links
- No user's name in system message in a Group chat if he is not your contact
- Wrong error message displayed when trying to import missing key pair with incorrect recovery phrase
- Allow users from v1 to login with keycard
- Proper biometrics error message for android when app do not have face id permissions
- 🗄️ Enhance `quo/category` component to render `quo/data-items` as children
- "Confirm account origin" button disabled on Key Pairs page
- Max value calculates 3 networks in bridge flow instead of 2
- The last available network can be deselected in the bridge flow
- 🔍 Implement search in saved addresses list
- Show collectibles in Activity tab HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from status-mobile.