libzypp  17.25.2
LoadTestcase.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_MISC_LOADTESTCASE_H
13 #define ZYPP_MISC_LOADTESTCASE_H
14 
15 #include <zypp/Arch.h>
16 #include <zypp/Locale.h>
17 #include <zypp/Pathname.h>
18 #include <zypp/ResolverFocus.h>
19 #include <zypp/Url.h>
20 #include <zypp/base/PtrTypes.h>
21 #include <zypp/base/SetTracker.h>
22 #include <zypp/base/NonCopyable.h>
23 #include <zypp/sat/Queue.h>
25 
26 #include <optional>
27 #include <memory>
28 
29 namespace zypp {
30  class RepoManager;
31 }
32 
33 namespace zypp::misc::testcase {
34 
35  enum class TestcaseRepoType {
36  Helix,
37  Testtags,
38  Url
39  };
40 
41  struct RepoData {
43  std::string alias;
44  uint priority = 99;
45  std::string path;
46  };
47 
48  struct ForceInstall {
49  std::string channel;
50  std::string package;
51  std::string kind;
52  };
53 
55  {
56  Arch architecture = Arch_noarch;
57 
58  std::optional<RepoData> systemRepo;
59  std::vector<RepoData> repos;
60 
61  // solver flags: default to false - set true if mentioned in <setup>
63 
67 
71  std::set<std::string> multiversionSpec;
72  std::vector<ForceInstall> forceInstallTasks;
73 
74  bool set_licence = false;
75  bool show_mediaid = false;
76 
78  bool onlyRequires = false;
79  bool forceResolve = false;
80  bool cleandepsOnRemove = false;
81 
82  bool allowDowngrade = false;
83  bool allowNameChange = false;
84  bool allowArchChange = false;
85  bool allowVendorChange = false;
86 
87  bool dupAllowDowngrade = false;
88  bool dupAllowNameChange = false;
89  bool dupAllowArchChange = false;
90  bool dupAllowVendorChange = false;
91 
92  bool applySetup ( zypp::RepoManager &manager ) const;
93 
94  static bool loadRepo (zypp::RepoManager &manager, const TestcaseSetup &setup, const RepoData &data );
95  };
96 
98  {
99  struct Node {
100  std::string name;
101  std::string value;
102 
103  const std::string &getProp( const std::string &name, const std::string &def = std::string() ) const;
104 
105  std::map<std::string, std::string> properties;
106  std::vector<std::shared_ptr<Node>> children;
107  };
108  std::vector<Node> nodes;
109  };
110 
112  {
113  public:
114  struct Impl;
115 
116  enum Type {
119  Yaml
120  };
121 
122  LoadTestcase();
123  ~LoadTestcase();
124 
125  bool loadTestcaseAt ( const zypp::Pathname &path, std::string *err );
126  static Type testcaseTypeAt ( const zypp::Pathname &path );
127 
128  const TestcaseSetup &setupInfo() const;
129  const std::vector<TestcaseTrial> &trialInfo() const;
130 
131  private:
132  std::unique_ptr<Impl> _pimpl;
133  };
134 
135 }
136 
137 
138 #endif // ZYPP_MISC_LOADTESTCASE_H
zypp::misc::testcase::TestcaseRepoType::Helix
@ Helix
zypp::misc::testcase::LoadTestcase::Type
Type
Definition: LoadTestcase.h:116
zypp::misc::testcase::LoadTestcase::trialInfo
const std::vector< TestcaseTrial > & trialInfo() const
Definition: LoadTestcase.cc:180
zypp::misc::testcase::TestcaseSetup::localesTracker
base::SetTracker< LocaleSet > localesTracker
Definition: LoadTestcase.h:69
zypp::misc::testcase::TestcaseTrial
Definition: LoadTestcase.h:98
zypp::misc::testcase::TestcaseSetup::dupAllowDowngrade
bool dupAllowDowngrade
Definition: LoadTestcase.h:87
zypp::misc::testcase::TestcaseSetup::systemRepo
std::optional< RepoData > systemRepo
Definition: LoadTestcase.h:58
ResolverFocus.h
Modalias.h
zypp::ResolverFocus::Default
@ Default
Request the standard behavior (as defined in zypp.conf or 'Job')
zypp::misc::testcase::RepoData::type
TestcaseRepoType type
Definition: LoadTestcase.h:42
zypp::misc::testcase::TestcaseSetup::dupAllowNameChange
bool dupAllowNameChange
Definition: LoadTestcase.h:88
SetTracker.h
zypp::misc::testcase::TestcaseTrial::Node
Definition: LoadTestcase.h:99
zypp::misc::testcase::TestcaseSetup::loadRepo
static bool loadRepo(zypp::RepoManager &manager, const TestcaseSetup &setup, const RepoData &data)
Definition: LoadTestcase.cc:231
zypp::misc::testcase::ForceInstall::package
std::string package
Definition: LoadTestcase.h:50
zypp::misc::testcase::LoadTestcase::Impl
Definition: LoadTestcase.cc:29
zypp::misc::testcase::LoadTestcase::setupInfo
const TestcaseSetup & setupInfo() const
Definition: LoadTestcase.cc:175
PtrTypes.h
zypp::misc::testcase::TestcaseSetup::forceInstallTasks
std::vector< ForceInstall > forceInstallTasks
Definition: LoadTestcase.h:72
zypp::misc::testcase::TestcaseSetup::forceResolve
bool forceResolve
Definition: LoadTestcase.h:79
zypp::misc::testcase::TestcaseTrial::Node::properties
std::map< std::string, std::string > properties
Definition: LoadTestcase.h:105
Pathname.h
zypp::ResolverFocus
ResolverFocus
The resolvers general attitude.
Definition: ResolverFocus.h:22
zypp::misc::testcase::TestcaseSetup::show_mediaid
bool show_mediaid
Definition: LoadTestcase.h:75
zypp::Arch
Architecture.
Definition: Arch.h:37
zypp::misc::testcase::TestcaseSetup::autoinstalled
sat::StringQueue autoinstalled
Definition: LoadTestcase.h:70
zypp::misc::testcase::TestcaseSetup::systemCheck
Pathname systemCheck
Definition: LoadTestcase.h:66
zypp::misc::testcase::LoadTestcase
Definition: LoadTestcase.h:112
zypp::misc::testcase::TestcaseSetup::globalPath
Pathname globalPath
Definition: LoadTestcase.h:64
Url.h
zypp::misc::testcase::TestcaseSetup::architecture
Arch architecture
Definition: LoadTestcase.h:56
zypp::misc::testcase::LoadTestcase::LoadTestcase
LoadTestcase()
Definition: LoadTestcase.cc:137
zypp::misc::testcase::TestcaseSetup::allowNameChange
bool allowNameChange
Definition: LoadTestcase.h:83
zypp::misc::testcase::TestcaseSetup::applySetup
bool applySetup(zypp::RepoManager &manager) const
Definition: LoadTestcase.cc:192
Arch.h
zypp::misc::testcase::LoadTestcase::Yaml
@ Yaml
Definition: LoadTestcase.h:119
zypp::base::NonCopyable
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
Definition: NonCopyable.h:26
zypp::misc::testcase::TestcaseSetup::allowDowngrade
bool allowDowngrade
Definition: LoadTestcase.h:82
zypp::misc::testcase::TestcaseTrial::nodes
std::vector< Node > nodes
Definition: LoadTestcase.h:108
zypp::misc::testcase::LoadTestcase::testcaseTypeAt
static Type testcaseTypeAt(const zypp::Pathname &path)
Definition: LoadTestcase.cc:165
zypp::misc::testcase::TestcaseSetup
Definition: LoadTestcase.h:55
zypp::misc::testcase::LoadTestcase::None
@ None
Definition: LoadTestcase.h:117
zypp::misc::testcase::LoadTestcase::~LoadTestcase
~LoadTestcase()
Definition: LoadTestcase.cc:140
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
Queue.h
zypp::misc::testcase::TestcaseSetup::set_licence
bool set_licence
Definition: LoadTestcase.h:74
zypp::misc::testcase::TestcaseSetup::allowVendorChange
bool allowVendorChange
Definition: LoadTestcase.h:85
zypp::misc::testcase::RepoData::path
std::string path
Definition: LoadTestcase.h:45
zypp::sat::Queue
Libsolv Id queue wrapper.
Definition: Queue.h:35
zypp::misc::testcase::ForceInstall::channel
std::string channel
Definition: LoadTestcase.h:49
zypp::misc::testcase::RepoData::alias
std::string alias
Definition: LoadTestcase.h:43
zypp::misc::testcase::TestcaseTrial::Node::getProp
const std::string & getProp(const std::string &name, const std::string &def=std::string()) const
Definition: LoadTestcase.cc:185
zypp::misc::testcase::TestcaseSetup::dupAllowArchChange
bool dupAllowArchChange
Definition: LoadTestcase.h:89
zypp::misc::testcase::LoadTestcase::_pimpl
std::unique_ptr< Impl > _pimpl
Definition: LoadTestcase.h:132
zypp::misc::testcase::RepoData
Definition: LoadTestcase.h:41
zypp::misc::testcase::TestcaseSetup::dupAllowVendorChange
bool dupAllowVendorChange
Definition: LoadTestcase.h:90
zypp::misc::testcase::TestcaseSetup::resolverFocus
ResolverFocus resolverFocus
Definition: LoadTestcase.h:62
zypp::misc::testcase::TestcaseRepoType
TestcaseRepoType
Definition: LoadTestcase.h:35
zypp::misc::testcase::TestcaseTrial::Node::children
std::vector< std::shared_ptr< Node > > children
Definition: LoadTestcase.h:106
zypp::misc::testcase::TestcaseTrial::Node::name
std::string name
Definition: LoadTestcase.h:100
zypp::misc::testcase::TestcaseSetup::ignorealreadyrecommended
bool ignorealreadyrecommended
Definition: LoadTestcase.h:77
zypp::misc::testcase::TestcaseSetup::cleandepsOnRemove
bool cleandepsOnRemove
Definition: LoadTestcase.h:80
zypp::misc::testcase::ForceInstall::kind
std::string kind
Definition: LoadTestcase.h:51
zypp::misc::testcase::LoadTestcase::Helix
@ Helix
Definition: LoadTestcase.h:118
Locale.h
zypp::filesystem::Pathname
Pathname.
Definition: Pathname.h:45
zypp::misc::testcase::TestcaseSetup::modaliasList
target::Modalias::ModaliasList modaliasList
Definition: LoadTestcase.h:68
zypp::target::Modalias::ModaliasList
std::vector< std::string > ModaliasList
Definition: Modalias.h:41
zypp::misc::testcase::TestcaseSetup::repos
std::vector< RepoData > repos
Definition: LoadTestcase.h:59
zypp::misc::testcase::TestcaseSetup::allowArchChange
bool allowArchChange
Definition: LoadTestcase.h:84
zypp::misc::testcase::LoadTestcase::loadTestcaseAt
bool loadTestcaseAt(const zypp::Pathname &path, std::string *err)
Definition: LoadTestcase.cc:143
zypp::misc::testcase::TestcaseSetup::multiversionSpec
std::set< std::string > multiversionSpec
Definition: LoadTestcase.h:71
zypp::Url
Url manipulation class.
Definition: Url.h:88
zypp::base::SetTracker< LocaleSet >
zypp::misc::testcase::RepoData::priority
uint priority
Definition: LoadTestcase.h:44
zypp::RepoManager
creates and provides information about known sources.
Definition: RepoManager.h:106
zypp::misc::testcase::TestcaseSetup::onlyRequires
bool onlyRequires
Definition: LoadTestcase.h:78
zypp::misc::testcase::ForceInstall
Definition: LoadTestcase.h:48
zypp::misc::testcase::TestcaseTrial::Node::value
std::string value
Definition: LoadTestcase.h:101
zypp::misc::testcase
Definition: LoadTestcase.cc:24
NonCopyable.h
zypp::misc::testcase::TestcaseSetup::hardwareInfoFile
Pathname hardwareInfoFile
Definition: LoadTestcase.h:65