Commit Graph

224 Commits

Author SHA1 Message Date
Norman Feske
afcad2a968 os: new Input::Event representation
This commit changes the 'Input::Event' type to be more safe and to
deliver symbolic character information along with press events.

Issue #2761
Fixes #2786
2018-05-03 15:31:25 +02:00
Martin Stein
178efe9c97 fetchurl.run: add missing gpio driver
Fixes #2780
2018-05-03 15:31:20 +02:00
Christian Helmuth
f9ca0ae119 Remove unused libm/posix libraries from extract test 2018-04-19 12:39:19 +02:00
Johannes Kliemann
1261c18ce9 ada: runtime and library support
The Ada runtime can now be set with the ADA_RTS variable. The ada
library builds a (currently) minimal runtime from the gcc sources that
come with Genode (to stay consistent with the used compiler) and sets
the runtime path accordingly. It is build as a shared library ada.lib.so
which needs to be added to the build files.

I split the existing Ada test into program and library, and moved it
to libports as it depends on the runtime library residing in this
repository too.

Fixes #2748
2018-04-19 12:38:54 +02:00
Norman Feske
cb78516bf1 os: add tests to autopilot
Since the autopilot has become able to use the depot, futher tests can
be enabled by default.
2018-04-19 12:38:53 +02:00
Stefan Kalkowski
ad99688853 imx53_qsb: enable automated network tests
Fix #2749
2018-04-19 12:38:24 +02:00
Norman Feske
10c9b8a221 sculpt: change DNS server to 1.1.1.1
The previously used nameserver 213.73.91.35 of the CCC seems to be no
longer available.
2018-04-10 13:03:26 +02:00
Martin Stein
d6e1c462cc nic_dump: default attribute
The 'default' attribute is useful to change the default value for those
protocol attributes that are not explicitely set in the configuration of
the component.

Issue #2738
2018-04-10 11:20:49 +02:00
Martin Stein
ed13a0a262 nic_dump: make protocols configurable
Each supported protocol now has an attribute with the name of the protocol in
the config tag. Each of these attributes accepts one of four possible values:

* no      - do not print out this protocol
* name    - print only the protocol name
* default - print a short summary of the most important header values
* all     - print all available header values

Example:

! <config eth="name"
!         arp="all"
!         ipv4="default"
!         dhcp="no"
!         icmp="all"
!         udp="no"
!         tcp="default"
!         ... />

Corresponding output example:

! ETH IPV4 10.0.2.212 > 10.0.2.55   time 7158 ms (Δ 11 ms)
! ETH IPV4 10.0.2.55 > 10.0.2.201  TCP 80 > 49154 flags ' time 6976 ms (Δ 5 ms)
! ETH ARP hw 1 prot 2048 hwsz 6 protsz 4 op 1 srcmac 02:02:02:02:02:01 srcip 10.0.2.212 dstmac 00:00:00:00:00:00 dstip 10.0.2.55 time 7074 ms (Δ 98 ms)

Issue #2738
2018-04-10 11:20:49 +02:00
8ba26c612a FatFS watch support
Implement watch support using a watch handle list.

Test at run/fs_rom_update_fat.

Ref #1934
2018-04-10 11:11:51 +02:00
e1a079954b Fetchurl: optionally attempt to re-fetch failed URLs.
Fix #2733
2018-04-10 11:11:50 +02:00
Alexander Boettcher
fce15b4f13 sel4: adjust network scenarios for wandboard
Issue #2665
2018-04-10 11:09:16 +02:00
Martin Stein
c8fcaf007e nic_router.run: provide test for 'dns_server_from'
Fixes #2730
2018-04-10 11:06:01 +02:00
Martin Stein
a3b04c55f3 nic_router_dyn_config.run: test re-configurability
A very basic test of the re-configurability. It overwrites the configuration
once without making any changes, once with removing all domains except
uplink, and a third time recovering to the initial configuration to see if
the clients keep going as soon as their domains are back.

Fixes #2670
2018-03-29 15:39:45 +02:00
Martin Stein
2a77976164 nic_router: add verbose_packets per domain
A domain logs its packets if one of the global 'verbose_packets' or its local
'verbose_packets' is switched on.

Ref #2670
2018-03-29 15:20:20 +02:00
Martin Stein
bd16f89617 nic_router: add verbose_packets attribute
This separates the decision wether to log the received and sent packets
from the 'verbose' attribute. This information is now only logged if
'verbose_packets' is switched on. If 'verbose' is switched on, only
routing decisions and optional hints are printed.

Ref #2670
2018-03-29 15:20:15 +02:00
Martin Stein
b69134f1fe nic_router.run: test DHCP server
Very basic test of the DHCP server functionality.

Ref #2670
2018-03-29 15:19:29 +02:00
Christian Helmuth
f2b9a6238c stdcxx: std::istream::ignore support 2018-03-27 13:43:08 +02:00
84ac5891b2 Fetchurl progress reporting
Refactor the fetchurl utility to optionally report the initial fetch
state, fetch progress, and the final state.

Fix #2702
2018-03-08 12:05:09 +01:00
Christian Helmuth
ddd5e8abb4 Provide /dev/random in runtime for fetchurl
libcrypto transparently opens /dev/random to seed its PRNG or logs an
error if this fails.
2018-02-28 11:05:04 +01:00
Stefan Kalkowski
9f945a782f run: enable Wandquad board for network tests
Ref #2665
2018-02-28 11:04:57 +01:00
e1f7dd0553 Migrate fetchurl to socket_fs
Remove the dependency on the deprecated LwIP libary.

Remove the progress logging callback. Should a progress indicator be
desired, a progress report would be more appropriate.

Fix #2684
2018-02-28 11:01:31 +01:00
Norman Feske
126c72c9c8 mesa-gears.run: add missing rtc config
Without the 'rtc' configuration, the gears won't move.
2018-02-16 08:42:29 +01:00
Alexander Boettcher
accc7e7521 fs servers: handle result propagation better
This patch removes the notion of partial writes from the file-system
servers. Since write operations are asynchronously submitted, they are
expected to succeed completely, except for I/O errors. I/O errors are
propagated with the write acknowledgement but those are usually handled
out of band at the client side. Partial writes must never occur because
they would go undetected by clients, which usually don't wait for the
completion of each single write operation.

Until now, most file-system servers returned the number of written bytes
in the acknowledgement packet. If a server managed to write a part of
the request only, it issued the acknowledgement immediately where it
should have cared about writing the remaining part first.

The patch detects such misbehaving server-side code. If partial writes
unexpectedly occur, it prints a message and leaves the corresponding
request unacknowdleged.

Issue #2672
2018-02-15 10:22:08 +01:00
Stefan Kalkowski
9d16169a65 run: remove NIC driver from nic_*.run tests
Instead of having a lot of platform specific quirks in the run test,
and to also test it on platforms currently missing a NIC driver,
this commit removes hardware drivers from the nic_router and
nic_bridge run scripts, and uses the nic_loopback server instead.
2018-02-09 13:34:24 +01:00
Christian Prochaska
d0eacdd0d6 stdcxx: define _GLIBCXX11_USE_C99_STDLIB
Fixes #2652
2018-02-09 13:34:17 +01:00
Norman Feske
c8c910a41b fetchurl: dim debug-message noise 2018-02-09 13:34:13 +01:00
Christian Helmuth
a1e22789af fetchurl: NIC driver binary from platform_drv.inc 2018-01-17 12:14:43 +01:00
Norman Feske
bdc8e1f8fb libports: component for extracting archives
Issue #2528
2018-01-17 12:14:39 +01:00
36104098ad libc: fill stdio descriptors even if invalid
Stdin, stdout, and stderr are mapped to descriptors 0, 1, and 2
respectively. If these first three descriptors are not allocated before
the application becomes active then normal files and sockets can be
opened under these numbers, potentially causing unexpected application
behavior.

Fix #2628
2018-01-17 12:14:33 +01:00
Norman Feske
61e1bed2c2 Adaptation to changed RTC handling in libc
This is a follow-up commit to "libc: prevent timer session if rtc not
configured".

Issue #2625
2018-01-17 12:14:33 +01:00
Norman Feske
1be4a0aeaf libc: prevent timer session if rtc not configured
This patch makes the creation of the libc's timer session depend on
whether or not the 'rtc' attribute of the <libc> configuration is
defined. If not configured, 'clock_gettime' returns 0.

Fixes #2625
2018-01-17 12:14:33 +01:00
Norman Feske
fd89f510ca fetchurl.run: update list of needed boot modules 2017-12-22 11:43:39 +01:00
Martin Stein
edf1f9d849 nic_router: report some useful information
The NIC router can now be configured to periodically send reports.
Configuration example (shows default values):

<config>
	<report interval_sec="5" bytes="yes" config="yes">
</config>

If the 'report' tag is not available, no reports are send.
The attributes of the 'report' tag:

'bytes'        : Boolean : Whether to report sent bytes and received bytes per
                           domain
'config'       : Boolean : Whether to report ipv4 interface and gateway per
                           domain
'interval_sec' : 1..3600 : Interval of sending reports in seconds

Issue #2614
2017-12-21 15:01:54 +01:00
Martin Stein
4d6fcbb8b6 nic_router.inc: automatically count clients
Avoid that the user has to define the number of HTTP/UDP clients manually.
This count is used by the run scripts to generate the expected log output.

Fix #2609
2017-12-21 15:01:54 +01:00
Martin Stein
3ced146733 nic_router.run: more tailored router config
Add to the router config only what is needed according to which tests are
enabled.

Issue #2609
2017-12-21 15:01:53 +01:00
Martin Stein
9e1d776da5 nic_router.run: test hub functionality
The new test 7 is by now deactivated by default as enabling all tests at a time
would trigger resource exhaustion on some platforms.

Issue #2609
2017-12-21 15:01:53 +01:00
Martin Stein
2d153c40e4 nic_router.run: generate result string via loop
Issue #2609
2017-12-21 15:01:52 +01:00
Martin Stein
cfbd1f0749 nic_router.inc: allow for individual peer names
Previously, the function that returned the XML config for a network test
client/server in the scripts formed the component name of the peer solely
by combining the protocol name, "client" or "server", and a suffix that
is given as argument. However, to group multiple clients together in one
domain via their session label at the NIC router we want peers with the same
name prefix. Thus, the function now simply takes the whole name as argument.

Issue #2609
2017-12-21 15:01:52 +01:00
Norman Feske
c9a5f0ce45 libports: import fetchurl from world
Fixes #2578
2017-12-21 15:01:43 +01:00
Martin Stein
c3853494c8 nic_router: domain-state-verbose flag
When this flag is set in the config tag, the NIC router will print a
short information to the log for each general state change of a domain.
This includes currently the IP-configuration state and the number of
connected NIC sessions. This a useful addition as the normal verbose
flag's purpose is a very deep insight into almost every activity in the
router, which is cool for debugging sophisticated problems but normally
floods the log and therefore discards this option for, e.g., desktop
systems. In such systems, the new verbosity is pretty discreet but
already gives a good hint on why packets may get dropped by the router
although the routing rules are correct.

Issue #2534
2017-12-21 15:01:37 +01:00
Martin Stein
3cdcb528ff nic_router: advanced timeout configuration
Replace former rtt_sec attribute of the <config> tag by more specific
(and still optional) attributes for timeouts used in the NIC router
(these are also the default values):

<config dhcp_discover_timeout_sec="10"
        dhcp_request_timeout_sec="10"
        dhcp_offer_timeout_sec="10"
        udp_idle_timeout_sec="30"
        tcp_idle_timeout_sec="600"
        tcp_max_segm_lifetime_sec="30">

Details about the new attributes can be found in the README of the router.

Issue #2590
2017-12-21 15:01:32 +01:00
Christian Helmuth
1ae527ea67 qt5: qtvirtualkeyboard example depends on swrast 2017-11-30 11:23:22 +01:00
Christian Prochaska
a0a54df74c qt5: pointer shape support
Fixes #2586
2017-11-30 11:23:22 +01:00
Christian Prochaska
15a5db61c8 Reduce number of write-read rounds on Qemu in libc fs tests 2017-11-30 11:23:19 +01:00
Christian Helmuth
d5518aa938 lib/vfs/lxip: support configuration of MTU
The MTU can be set via the "mtu" attribute like follows.

  <vfs> <lxip mtu="1200" dhcp="yes"/> </vfs>
2017-11-30 11:23:18 +01:00
Josef Söntgen
6ca8f4c174 sdl: remove deprecated API usage
In addition framebuffer resizing is now also supported.

Fixes #2583.
2017-11-30 11:23:16 +01:00
Alexander Boettcher
0a5dcc86ed platform_drv: separate acpi and system feature 2017-11-30 11:23:14 +01:00
Norman Feske
b7eb5d94f2 acpica: remove debug version
The debug version comes with an unwelcome libc dependency, which is
solely needed for the formatted output of error messages. Since the
distinction between the regular and the debug versions remained unused
in practice, this patch removes the debug version.
2017-11-30 11:23:12 +01:00
Martin Stein
d37f32fb21 nic_router.run: raise timeouts for sel4+qemu 2017-11-30 11:23:11 +01:00