Compare commits
2 Commits
9e8566ff4d
...
3a3ce74003
| Author | SHA1 | Date | |
|---|---|---|---|
|
3a3ce74003
|
|||
|
629c0782d5
|
@ -1,11 +0,0 @@
|
|||||||
services:
|
|
||||||
fail-db:
|
|
||||||
image: mysql
|
|
||||||
container_name: fail-db
|
|
||||||
environment:
|
|
||||||
MYSQL_ROOT_PASSWORD: fail
|
|
||||||
MYSQL_USER: fail
|
|
||||||
MYSQL_PASSWORD: fail
|
|
||||||
MYSQL_DATABASE: fail
|
|
||||||
ports:
|
|
||||||
- "3306:3306"
|
|
||||||
11
flake.nix
11
flake.nix
@ -44,8 +44,8 @@ rec {
|
|||||||
|
|
||||||
libdwarf_pkgs =
|
libdwarf_pkgs =
|
||||||
import (builtins.fetchTarball {
|
import (builtins.fetchTarball {
|
||||||
url = "https://github.com/NixOS/nixpkgs/archive/a054d7450768069084142fe597ed2da367813a4a.tar.gz";
|
url = "https://github.com/NixOS/nixpkgs/archive/f597e7e9fcf37d8ed14a12835ede0a7d362314bd.tar.gz";
|
||||||
sha256 = "sha256:1wlbz6glkzrl3y7pprw1v4sgkwwzi26qlxqfjzxghdlnny91l3cj";
|
sha256 = "sha256:1l79hh7jh7m8yc5mvc8dbg6s8rf30bgm994kf07xriqbzwfn158r";
|
||||||
}) {
|
}) {
|
||||||
inherit system;
|
inherit system;
|
||||||
};
|
};
|
||||||
@ -250,7 +250,7 @@ rec {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
wamr = stdenv.mkDerivation rec {
|
wamr = stdenv.mkDerivation {
|
||||||
pname = "wamr";
|
pname = "wamr";
|
||||||
version = "2.4.4";
|
version = "2.4.4";
|
||||||
|
|
||||||
@ -274,7 +274,7 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
libiwasm = buildtype: flags:
|
libiwasm = buildtype: flags:
|
||||||
i386_pkgs.stdenv.mkDerivation rec {
|
i386_pkgs.stdenv.mkDerivation {
|
||||||
pname = "libiwasm";
|
pname = "libiwasm";
|
||||||
version = "2.4.4";
|
version = "2.4.4";
|
||||||
|
|
||||||
@ -315,7 +315,7 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
libiwasm_debug = libiwasm "Debug" "-O0 -ggdb";
|
libiwasm_debug = libiwasm "Debug" "-O0 -ggdb";
|
||||||
libiwasm_release = libiwasm "Release" "-O2 -DNDEBUG";
|
libiwasm_release = libiwasm "Release" "-O2 -ggdb -DNDEBUG";
|
||||||
|
|
||||||
# ===========================================================================================
|
# ===========================================================================================
|
||||||
# Specify dependencies
|
# Specify dependencies
|
||||||
@ -334,6 +334,7 @@ rec {
|
|||||||
grub2
|
grub2
|
||||||
xorriso
|
xorriso
|
||||||
mariadb.client
|
mariadb.client
|
||||||
|
dbeaver-bin
|
||||||
iwasm
|
iwasm
|
||||||
wamrc
|
wamrc
|
||||||
fail-bin
|
fail-bin
|
||||||
|
|||||||
58
justfile
58
justfile
@ -37,7 +37,7 @@ WAMRCFLAGS := "\
|
|||||||
"
|
"
|
||||||
XXD := "xxd"
|
XXD := "xxd"
|
||||||
|
|
||||||
# Load AOT from WAMR
|
# Load AOT from WAMR (FAIL+Baremetal)
|
||||||
|
|
||||||
CROSS_CFLAGS := "\
|
CROSS_CFLAGS := "\
|
||||||
-I./targets/wasm-host \
|
-I./targets/wasm-host \
|
||||||
@ -147,15 +147,32 @@ FAIL_SERVER := "generic-experiment-server --database-option-file ./db.conf"
|
|||||||
FAIL_INJECT := "generic-experiment-client"
|
FAIL_INJECT := "generic-experiment-client"
|
||||||
RESULT_BROWSER := "resultbrowser.py -c ./db.conf"
|
RESULT_BROWSER := "resultbrowser.py -c ./db.conf"
|
||||||
|
|
||||||
[doc("Start MySQL to receive FAIL* trace/campaign results")]
|
[doc("Start MySQL container to receive FAIL* trace/campaign results")]
|
||||||
[group("fail")]
|
[group("fail")]
|
||||||
start-db:
|
start-db:
|
||||||
docker compose up
|
docker run -d \
|
||||||
|
--name fail-db \
|
||||||
|
-e MYSQL_ROOT_PASSWORD=fail \
|
||||||
|
-e MYSQL_USER=fail \
|
||||||
|
-e MYSQL_PASSWORD=fail \
|
||||||
|
-e MYSQL_DATABASE=fail \
|
||||||
|
-p 3306:3306 \
|
||||||
|
mysql
|
||||||
|
|
||||||
[doc("Stop MySQL")]
|
[doc("Connect to MySQL database using DBeaver")]
|
||||||
|
[group("fail")]
|
||||||
|
connect-db:
|
||||||
|
dbeaver -con "name=fail|driver=mysql|host=localhost|port=3306|database=fail|user=fail|password=fail"
|
||||||
|
|
||||||
|
[doc("Stop MySQL container")]
|
||||||
[group("fail")]
|
[group("fail")]
|
||||||
stop-db:
|
stop-db:
|
||||||
docker compose down
|
docker stop fail-db
|
||||||
|
|
||||||
|
[doc("Remove MySQL container")]
|
||||||
|
[group("fail")]
|
||||||
|
remove-db:
|
||||||
|
docker container rm fail-db
|
||||||
|
|
||||||
[doc("Trace a golden run using FAIL*")]
|
[doc("Trace a golden run using FAIL*")]
|
||||||
[group("fail")]
|
[group("fail")]
|
||||||
@ -176,6 +193,11 @@ trace module:
|
|||||||
-Wf,--elf-file={{ BUILD_DIR }}-{{ module }}/system.elf
|
-Wf,--elf-file={{ BUILD_DIR }}-{{ module }}/system.elf
|
||||||
@echo "Next step: \"just import {{ module }}\""
|
@echo "Next step: \"just import {{ module }}\""
|
||||||
|
|
||||||
|
# [doc("Dump a FAIL* golden run trace")]
|
||||||
|
# [group("fail")]
|
||||||
|
# dump module:
|
||||||
|
# {{ FAIL_DUMP }} {{ BUILD_DIR }}-{{ module }}/trace.pb
|
||||||
|
|
||||||
[doc("Import a FAIL* golden run trace")]
|
[doc("Import a FAIL* golden run trace")]
|
||||||
[group("fail")]
|
[group("fail")]
|
||||||
import module:
|
import module:
|
||||||
@ -185,20 +207,18 @@ import module:
|
|||||||
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs --flags
|
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs --flags
|
||||||
{{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i RegisterImporter \
|
{{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i RegisterImporter \
|
||||||
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip --no-gp --ip
|
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip --no-gp --ip
|
||||||
# TODO: Failed to decode DWARF data - wrong libdwarf version?
|
{{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
||||||
#
|
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip
|
||||||
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
{{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
||||||
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip
|
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b mem
|
||||||
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
{{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
||||||
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b mem
|
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs
|
||||||
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
{{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
||||||
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs
|
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip --sources
|
||||||
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
{{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
||||||
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip --sources
|
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b mem --sources
|
||||||
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
{{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
||||||
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b mem --sources
|
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs --sources
|
||||||
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
|
|
||||||
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs --sources
|
|
||||||
{{ FAIL_PRUNE }} -v {{ module }} -b %% --overwrite
|
{{ FAIL_PRUNE }} -v {{ module }} -b %% --overwrite
|
||||||
@echo "Next step: \"just server {{ module }}\""
|
@echo "Next step: \"just server {{ module }}\""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user