1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
//! ref: composer/tests/Composer/Test/DependencyResolver/SolverTest.php
use indexmap::IndexMap;
use shirabe::dependency_resolver::default_policy::DefaultPolicy;
use shirabe::dependency_resolver::request::Request;
use shirabe::repository::array_repository::ArrayRepository;
use shirabe::repository::handle::LockArrayRepositoryHandle;
use shirabe::repository::lock_array_repository::LockArrayRepository;
use shirabe::repository::repository_set::RepositorySet;
#[allow(dead_code)]
struct Fixtures {
repo_set: RepositorySet,
repo: ArrayRepository,
repo_locked: LockArrayRepositoryHandle,
request: Request,
policy: DefaultPolicy,
}
fn set_up() -> Fixtures {
let repo_set = RepositorySet::new(
"stable",
IndexMap::new(),
vec![],
IndexMap::new(),
IndexMap::new(),
IndexMap::new(),
);
let repo = ArrayRepository::new(vec![]).unwrap();
let repo_locked = LockArrayRepositoryHandle::new(LockArrayRepository::new(vec![]).unwrap());
let request = Request::new(Some(repo_locked.clone()));
let policy = DefaultPolicy::new(false, false, None);
Fixtures {
repo_set,
repo,
repo_locked,
request,
policy,
}
}
// These run the dependency Solver over packages/requests built from version constraints,
// whose parsing goes through a look-around regex the regex crate cannot compile; the setup
// also mirrors the larger solver fixtures.
macro_rules! stub {
($name:ident) => {
#[test]
#[ignore = "not yet ported (runs the Solver; constraint parsing uses a look-around regex)"]
fn $name() {
let _fixtures = set_up();
todo!()
}
};
}
stub!(test_solver_install_single);
stub!(test_solver_remove_if_not_requested);
stub!(test_install_non_existing_package_fails);
stub!(test_solver_install_same_package_from_different_repositories);
stub!(test_solver_install_with_deps);
stub!(test_solver_install_honours_not_equal_operator);
stub!(test_solver_install_with_deps_in_order);
stub!(test_solver_multi_package_name_version_resolution_depends_on_require_order);
stub!(test_solver_multi_package_name_version_resolution_is_independent_of_require_order_if_ordered_descending_by_requirement);
stub!(test_solver_fix_locked);
stub!(test_solver_fix_locked_with_alternative);
stub!(test_solver_update_does_only_update);
stub!(test_solver_update_single);
stub!(test_solver_update_all);
stub!(test_solver_update_current);
stub!(test_solver_update_only_updates_selected_package);
stub!(test_solver_update_constrained);
stub!(test_solver_update_fully_constrained);
stub!(test_solver_update_fully_constrained_prunes_installed_packages);
stub!(test_solver_all_jobs);
stub!(test_solver_three_alternative_require_and_conflict);
stub!(test_solver_obsolete);
stub!(test_install_one_of_two_alternatives);
stub!(test_install_provider);
stub!(test_skip_replacer_of_existing_package);
stub!(test_no_install_replacer_of_missing_package);
stub!(test_skip_replaced_package_if_replacer_is_selected);
stub!(test_pick_older_if_newer_conflicts);
stub!(test_install_circular_require);
stub!(test_install_alternative_with_circular_require);
stub!(test_use_replacer_if_necessary);
stub!(test_issue265);
stub!(test_conflict_result_empty);
stub!(test_unsatisfiable_requires);
stub!(test_require_mismatch_exception);
stub!(test_learn_literals_with_sorted_rule_literals);
stub!(test_install_recursive_alias_dependencies);
stub!(test_install_dev_alias);
stub!(test_install_root_aliases_if_alias_of_is_installed);
stub!(test_learn_positive_literal);
|