Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rapid7
GitHub Repository: rapid7/metasploit-framework
Path: blob/master/spec/modules/payloads/singles/windows/aarch64/exec_spec.rb
20087 views
1
require 'rspec'
2
3
RSpec.describe 'singles/windows/aarch64/exec' do
4
include_context 'Msf::Simple::Framework#modules loading'
5
6
let(:subject) do
7
load_and_create_module(
8
module_type: 'payload',
9
reference_name: 'windows/aarch64/exec',
10
ancestor_reference_names: [
11
'singles/windows/aarch64/exec'
12
]
13
)
14
end
15
let(:cmd) { nil }
16
let(:datastore_values) { { 'CMD' => cmd } }
17
18
before(:each) do
19
subject.datastore.merge!(datastore_values)
20
end
21
22
describe '#generate' do
23
def expect_valid_compilation
24
allow(subject).to receive(:compile_aarch64).and_wrap_original do |original, asm|
25
compiled_asm = original.call asm
26
expect(compiled_asm.length).to be > 0
27
'mock-aarch64-compiled'
28
end
29
expect(subject.generate).to include 'mock-aarch64-compiled'
30
end
31
32
context 'when the CMD is notepad.exe' do
33
let(:cmd) { 'notepad.exe' }
34
35
it 'compiles successfully' do
36
expect_valid_compilation
37
end
38
end
39
end
40
end
41
42