mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-23 23:42:32 +00:00
black_hole: test recipe for the depot_autopilot
* Creates sessions to all supported services of the black hole component * Test-drives the Event and Capture session with dummy input * Adds the test to the default list of depot_autopilot.run * Test-driving the Audio_in and Audio_out sessions is still missing and should be added via a dedicated commit Ref #4419
This commit is contained in:
parent
3966d6f16f
commit
ca49e94a87
@ -649,6 +649,7 @@ set default_test_pkgs {
|
|||||||
test-spark
|
test-spark
|
||||||
test-spark_exception
|
test-spark_exception
|
||||||
test-spark_secondary_stack
|
test-spark_secondary_stack
|
||||||
|
test-black_hole
|
||||||
test-clipboard
|
test-clipboard
|
||||||
test-depot_query_index
|
test-depot_query_index
|
||||||
test-ds_ownership
|
test-ds_ownership
|
||||||
|
1
repos/os/recipes/pkg/test-black_hole/README
Normal file
1
repos/os/recipes/pkg/test-black_hole/README
Normal file
@ -0,0 +1 @@
|
|||||||
|
Test for the black-hole server
|
3
repos/os/recipes/pkg/test-black_hole/archives
Normal file
3
repos/os/recipes/pkg/test-black_hole/archives
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
_/src/init
|
||||||
|
_/src/test-black_hole
|
||||||
|
_/src/black_hole
|
1
repos/os/recipes/pkg/test-black_hole/hash
Normal file
1
repos/os/recipes/pkg/test-black_hole/hash
Normal file
@ -0,0 +1 @@
|
|||||||
|
2022-02-11-b 774e0d8885fc800ca080f1ecfee487dcaec152ea
|
69
repos/os/recipes/pkg/test-black_hole/runtime
Normal file
69
repos/os/recipes/pkg/test-black_hole/runtime
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<runtime ram="32M" caps="1000" binary="init">
|
||||||
|
|
||||||
|
<requires> <timer/> </requires>
|
||||||
|
|
||||||
|
<events>
|
||||||
|
<timeout meaning="failed" sec="10" />
|
||||||
|
<log meaning="succeeded">Finished</log>
|
||||||
|
</events>
|
||||||
|
|
||||||
|
<content>
|
||||||
|
<rom label="ld.lib.so"/>
|
||||||
|
<rom label="test-black_hole"/>
|
||||||
|
<rom label="black_hole"/>
|
||||||
|
</content>
|
||||||
|
|
||||||
|
<config>
|
||||||
|
|
||||||
|
<parent-provides>
|
||||||
|
<service name="ROM"/>
|
||||||
|
<service name="IRQ"/>
|
||||||
|
<service name="IO_MEM"/>
|
||||||
|
<service name="IO_PORT"/>
|
||||||
|
<service name="PD"/>
|
||||||
|
<service name="RM"/>
|
||||||
|
<service name="CPU"/>
|
||||||
|
<service name="LOG"/>
|
||||||
|
<service name="Timer"/>
|
||||||
|
</parent-provides>
|
||||||
|
|
||||||
|
<start name="black_hole" caps="100">
|
||||||
|
<resource name="RAM" quantum="1M"/>
|
||||||
|
<provides>
|
||||||
|
<service name="Event"/>
|
||||||
|
<service name="Capture"/>
|
||||||
|
<service name="Audio_in"/>
|
||||||
|
<service name="Audio_out"/>
|
||||||
|
</provides>
|
||||||
|
<config>
|
||||||
|
<event/>
|
||||||
|
<capture/>
|
||||||
|
<audio_in/>
|
||||||
|
<audio_out/>
|
||||||
|
</config>
|
||||||
|
<route>
|
||||||
|
<service name="Timer"> <parent/> </service>
|
||||||
|
<service name="ROM"> <parent/> </service>
|
||||||
|
<service name="PD"> <parent/> </service>
|
||||||
|
<service name="LOG"> <parent/> </service>
|
||||||
|
<service name="CPU"> <parent/> </service>
|
||||||
|
</route>
|
||||||
|
</start>
|
||||||
|
|
||||||
|
<start name="test-black_hole" caps="100">
|
||||||
|
<resource name="RAM" quantum="10M"/>
|
||||||
|
<route>
|
||||||
|
<service name="Event"> <child name="black_hole"/> </service>
|
||||||
|
<service name="Capture"> <child name="black_hole"/> </service>
|
||||||
|
<service name="Audio_in"> <child name="black_hole"/> </service>
|
||||||
|
<service name="Audio_out"> <child name="black_hole"/> </service>
|
||||||
|
<service name="ROM"> <parent/> </service>
|
||||||
|
<service name="PD"> <parent/> </service>
|
||||||
|
<service name="LOG"> <parent/> </service>
|
||||||
|
<service name="CPU"> <parent/> </service>
|
||||||
|
</route>
|
||||||
|
</start>
|
||||||
|
|
||||||
|
</config>
|
||||||
|
|
||||||
|
</runtime>
|
2
repos/os/recipes/src/test-black_hole/content.mk
Normal file
2
repos/os/recipes/src/test-black_hole/content.mk
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SRC_DIR = src/test/black_hole
|
||||||
|
include $(GENODE_DIR)/repos/base/recipes/src/content.inc
|
1
repos/os/recipes/src/test-black_hole/hash
Normal file
1
repos/os/recipes/src/test-black_hole/hash
Normal file
@ -0,0 +1 @@
|
|||||||
|
2022-02-11-a 4f701d8c4696d6b6d267e352b6eec00affeeee7d
|
7
repos/os/recipes/src/test-black_hole/used_apis
Normal file
7
repos/os/recipes/src/test-black_hole/used_apis
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
base
|
||||||
|
os
|
||||||
|
blit
|
||||||
|
audio_in_session
|
||||||
|
audio_out_session
|
||||||
|
event_session
|
||||||
|
capture_session
|
67
repos/os/src/test/black_hole/main.cc
Normal file
67
repos/os/src/test/black_hole/main.cc
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
* \brief Testing the functionality of the black hole component
|
||||||
|
* \author Martin Stein
|
||||||
|
* \date 2022-02-11
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2022 Genode Labs GmbH
|
||||||
|
*
|
||||||
|
* This file is part of the Genode OS framework, which is distributed
|
||||||
|
* under the terms of the GNU Affero General Public License version 3.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* base includes */
|
||||||
|
#include <base/component.h>
|
||||||
|
|
||||||
|
/* os includes */
|
||||||
|
#include <event_session/connection.h>
|
||||||
|
#include <capture_session/connection.h>
|
||||||
|
#include <audio_in_session/connection.h>
|
||||||
|
#include <audio_out_session/connection.h>
|
||||||
|
|
||||||
|
#include <input/keycodes.h>
|
||||||
|
|
||||||
|
using namespace Genode;
|
||||||
|
|
||||||
|
namespace Test {
|
||||||
|
|
||||||
|
class Main;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class Test::Main
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
|
||||||
|
Env &_env;
|
||||||
|
Event::Connection _event { _env };
|
||||||
|
Capture::Connection _capture { _env };
|
||||||
|
Capture::Area _capture_screen_size { 1, 1 };
|
||||||
|
Capture::Pixel _capture_pixels[1];
|
||||||
|
Surface<Capture::Pixel> _capture_surface { _capture_pixels, _capture_screen_size };
|
||||||
|
Capture::Connection::Screen _capture_screen { _capture, _env.rm(), _capture_screen_size };
|
||||||
|
Audio_in::Connection _audio_in { _env, "left" };
|
||||||
|
Audio_out::Connection _audio_out { _env, "left" };
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
Main(Env &env) : _env { env }
|
||||||
|
{
|
||||||
|
_event.with_batch([&] (Event::Session_client::Batch &batch) {
|
||||||
|
batch.submit(Input::Press {Input::KEY_1 });
|
||||||
|
batch.submit(Input::Release {Input::KEY_2 });
|
||||||
|
batch.submit(Input::Relative_motion { 3, 4 });
|
||||||
|
});
|
||||||
|
|
||||||
|
_capture_screen.apply_to_surface(_capture_surface);
|
||||||
|
|
||||||
|
log("Finished");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void Component::construct(Env &env)
|
||||||
|
{
|
||||||
|
static Test::Main main { env };
|
||||||
|
}
|
3
repos/os/src/test/black_hole/target.mk
Normal file
3
repos/os/src/test/black_hole/target.mk
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
TARGET := test-black_hole
|
||||||
|
SRC_CC += main.cc
|
||||||
|
LIBS += base blit
|
Loading…
Reference in New Issue
Block a user