| Age | Commit message (Collapse) | Author |
|
|
|
Composer/PartialComposer exposed its RepositoryManager, InstallationManager,
EventDispatcher, Locker, DownloadManager, AutoloadGenerator and ArchiveManager
as concrete types, but Composer's public setters (setDownloadManager() etc.)
let plugins swap in subclasses. Introduce a *Interface trait per manager and
store each as Rc<RefCell<dyn ...Interface>> so a replacement is honored.
Only Composer's slots and the sinks fed from its accessors become trait
objects; managers injected concretely at construction keep their concrete
references, matching PHP semantics. Fluent setters on the affected classes now
return () and Locker::update_hash is de-generified to a boxed FnOnce so the
traits stay object-safe.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
Discovered via a full --include-ignored run: these tests have real (non-stub)
bodies and pass now, either because their blocker was since implemented (e.g.
config_command's stream_set_blocking via libc) or the ignore was stale.
Covers composer, config, forgejo_url, config_command, default_policy,
transaction, installed_repository, github_driver, version_bumper.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
Re-evaluate the reason'd #[ignore] tests under the Phase D criterion:
a test is unportable ONLY if the APIs/types needed to WRITE it do not
exist. A test that compiles but panics at runtime (todo!() body, a
regex the regex crate cannot compile) or fails at runtime (incomplete
or incorrect impl behavior) is portable -- it is written in full and
marked with a reason-less #[ignore].
About 120 test functions move from reason'd #[ignore] to reason-less
#[ignore] (the ported-but-not-yet-passing signal). Impl crates gain
only additive __ test hatches (init_command, pool, file_downloader,
package handle link setters, artifact/path repository, repository
manager, svn); no existing logic changes. Tests whose required APIs
genuinely do not exist (mock/reflection harness, ApplicationTester,
solve() discarding SolverProblemsException, a script::Event that
cannot be passed as an originating event) keep their reason'd
#[ignore].
cargo check -p shirabe --tests passes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
All ignored: Composer/Filesystem/Platform/Vcs repositories and the
AuthHelper/Bitbucket/Git/Perforce/RemoteFilesystem/Svn utils mock
IO/Config/HttpDownloader(curl)/ProcessExecutor or use reflection;
Filesystem/ProcessExecutor/StreamContextFactory/ProxyManager need on-disk
fixtures or proxy env. setUp/tearDown not ported.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
setPackage/setDownloadManager getters verified against real instances.
The repository-manager, installation-manager and locker cases build an
HttpDownloader, which reaches curl_multi_init (todo!()) in the php-shim,
so they are ignored.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
|