jnqnfe / pulse-binding-rust

FFI and bindings for using PulseAudio from the Rust programming language.
Apache License 2.0
67 stars 20 forks source link

Travis testing failure #25

Closed jnqnfe closed 5 years ago

jnqnfe commented 5 years ago

I am aware that recently that travis has been consistently reporting failure recently. Do not fret, there is nothing wrong with the crates!

The problem is simply some issue with the travis setup itself, relating it seems to the version of PA used within the test environment.

I'm working on it.

The simple fix to gets things working again it appeared to be to disable PA v12 features in the testing, since no travis environment yet has PA v12. Note that previously we only had success with that due to a mistake that I have now corrected in regards to use of feature flags with our Cargo workspace, the fix for which has helped highlight issues with our use of travis. However, having now tried disabling PA v12 support, it is still broken, and as of this minute, I'm still trying to understand the cause.

Currently, three specific tests are failing, with no immediately obvious reason. The PA v12 symbol being missing in the system lib (too old a version) is mentioned, though I don;t see why, and may be a read herring. I really don't know. Investigation continues...

Discussion ongoing here: https://travis-ci.community/t/failure-due-to-system-libs-now-being-older/4712

jnqnfe commented 5 years ago

update: so it seems that despite the supposed fix I made to ensure feature flags were used correctly at the workspace level, it does not seem to be working. if (on master, not next where flags have changed) I run cargo build --no-default-features --verbose then there is correctly no sign of the PA v12 feature flag and so it is being excluded. If however I run cargo test --no-default-features --verbose --all then I clearly see the PA v12 feature being enabled in tests... wth...

jnqnfe commented 5 years ago

update: so it seems use of --all is the cause. with the new lib-based workspace setup, the fact that you disable default features in the dependency has no effect when the --all flag is used, which pull in the default features of members regardless...

now i've just got to experimentally determine the min supported rustc version for the new glib dependency in order to get it passing again.

jnqnfe commented 5 years ago

sigh, so this is not sorted out properly after all. use of cargo test without the --all flag with the [package] based workspace toml file simply result sin tests being executed only on the workspace lib, not the workspace members. This is even the case if restoring the members attribute.

I'm currently at a loss as to how to properly marry workspace+features. I'm going to have to do some research into it and possibly post on the Cargo bug tracker...

jnqnfe commented 5 years ago

ok, should be resolved now with latest commits

will have to wait for workspace+feature control cargo support at which point we can simplify things again, if that ever comes...