Use 'Metasploit::Simple::Framework#modules loading' in 'payloads can be instantiated'
MSP-11130 Use `expect_to_load_module_ancestor` and `load_and_create_module` in favor of the custom code in 'payloads can be instantiated'.
This commit is contained in:
parent
c115ad3c36
commit
45fea32c77
|
@ -79,54 +79,32 @@ shared_examples_for 'payload can be instantiated' do |options|
|
|||
|
||||
module_type = 'payload'
|
||||
|
||||
include_context 'Msf::Simple::Framework'
|
||||
include_context 'Msf::Simple::Framework#modules loading'
|
||||
|
||||
#
|
||||
# lets
|
||||
#
|
||||
|
||||
let(:loader) {
|
||||
loader = framework.modules.send(:loaders).find { |loader|
|
||||
loader.loadable?(modules_path)
|
||||
}
|
||||
|
||||
# Override load_error so that rspec will print it instead of going to framework log
|
||||
def loader.load_error(module_path, error)
|
||||
raise error
|
||||
end
|
||||
|
||||
loader
|
||||
}
|
||||
|
||||
let(:module_set) {
|
||||
framework.modules.module_set(module_type)
|
||||
}
|
||||
|
||||
context reference_name do
|
||||
ancestor_reference_names.each do |ancestor_reference_name|
|
||||
it "can load '#{module_type}/#{ancestor_reference_name}'" do
|
||||
@actual_ancestor_reference_name_set.add(ancestor_reference_name)
|
||||
|
||||
loaded = loader.load_module(modules_path, module_type, ancestor_reference_name)
|
||||
|
||||
expect(loaded).to eq(true), "#{ancestor_reference_name} failed to load from #{modules_path}"
|
||||
expect_to_load_module_ancestor(
|
||||
ancestor_reference_name: ancestor_reference_name,
|
||||
module_type: module_type,
|
||||
modules_path: modules_path
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
it 'can be instantiated' do
|
||||
ancestor_reference_names.each do |ancestor_reference_name|
|
||||
loaded = loader.load_module(modules_path, module_type, ancestor_reference_name)
|
||||
|
||||
expect(loaded).to eq(true), "#{ancestor_reference_name} failed to load from #{modules_path}"
|
||||
end
|
||||
|
||||
module_instance = nil
|
||||
|
||||
expect {
|
||||
module_instance = module_set.create(reference_name)
|
||||
}.not_to raise_error
|
||||
|
||||
expect(module_instance).not_to be_nil, "Could not instantiate #{module_type}/#{reference_name}"
|
||||
load_and_create_module(
|
||||
ancestor_reference_names: ancestor_reference_names,
|
||||
module_type: module_type,
|
||||
modules_path: modules_path,
|
||||
reference_name: reference_name
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue