Comments (7)
here is a partial fix #163
it will still recopy the resources each time but at least it will be at the same place and won't eat disk space
we could probably speed up things for the copy on the android device by checking if https://github.com/google/adb-sync or https://github.com/SelfAdjointOperator/better-adb-sync is is the path and use it for the copy if it is the case
from dinghy.
Is it possible to just copy resources once before the first test?
from dinghy.
Dinghy registers itself as a runner inside cargo, and cargo creates a new dinghy process when it needs to run something on the device, passing some info about the executable to run and the package it comes from that is not available inside the dinghy main program. We don't really have the knowledge of previous invocations dinghy as the runner inside the runner.
So short answer is is not that easy and would probably be quite error prone if we did.
For ssh devices we already leverage rsync for the sync of the resources it would sort of make sense too use the same sort of mecanism for android (hence adb-sync)
from dinghy.
Is it ok to split the process into two commands, one for copy all resources and one for copy binaries and run tests?
Something like:
cargo dinghy prepare
cargo dinghy test
from dinghy.
Ok so I looked a bit more into it, and in fact adb has a --sync
option when using adb push that we are using. We however had a bug in the preparation of the bundle where test_data consisting of a single file didn't have metadata copied from the original file that prevented adb from seeing it as the same file. I fixed it in #163 could you test that it fixes things for you ?
use
$ git clone https://github.com/sonos/dinghy.git
$ git checkout use-package-name-instead-of-runnable-id-for-dinghy-dir
$ cargo install --path cargo-dinghy
to install the updated dinghy
from dinghy.
@fredszaq I tried the new version for Android and indeed it's faster.
The version from cargo install
took 3.8 minutes for my tests and the branch version took 2.5.
Guess my bottleneck is the size of executables now.
I have no success with dinghy on iOS so far so I can't try it for iOS now.
Looking forward for it to be published.
Thanks.
from dinghy.
great news ! you can use the --strip
dinghy argument to strip the executables before sending them to the device is you don't need debug symbols. I'm closing this, I have a few more things I want to add to the release that I'm working on this week but we'll probably cut one either end of this week or beginning of the next.
from dinghy.
Related Issues (20)
- don't work for ios 13.3 on osx 10.15.5 HOT 8
- Dinghy on Linux HOT 4
- Copies libdl.so to Android, causing failure to run HOT 3
- test --no-fail-fast is not recognized HOT 1
- How to build with non-default crate features? HOT 3
- Cannot run tests on iOS 14 device HOT 5
- Support building crates that use resolver 2 HOT 1
- No more working on iOS devices 14.x HOT 2
- test-app build fails with unable to find library -lgcc HOT 3
- Multiple arch in same tc
- Support for aarch64-apple-ios-sim in dinghy
- Rust 2021 Edition HOT 1
- Existence of a resource directory in project root breaks `dinghy run` for iOS simulator
- `catch_unwind` broken on `armv7-apple-ios` HOT 1
- lldb output is variable HOT 2
- No device support directory for iOS version 12.5 HOT 3
- deploy to iOS devices with ios-deploy HOT 2
- Duplicate executable file in ios *.app folder
- On the use `std::fs::ReadDir.next()` HOT 3
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 dinghy.