Skip to content

Commit 279f8aa

Browse files
committed
Add test for vTPM
This is a test for EVE PR #4071. It test the vTPM feature of EVE and aziot on EVE both legacy (using EVE-TOOLS) and latest (using vTPM). Signed-off-by: Shahriyar Jalayeri <[email protected]>
1 parent 8545f10 commit 279f8aa

18 files changed

+1451
-6
lines changed

go.mod

+11-1
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ require (
1414
github.com/fsnotify/fsnotify v1.6.0
1515
github.com/go-redis/redis/v9 v9.0.0-beta.1
1616
github.com/google/go-containerregistry v0.19.1
17+
github.com/google/go-tpm v0.9.1
1718
github.com/google/uuid v1.6.0
1819
github.com/lf-edge/eden/eserver v0.0.0-20220711180217-6e2bfa9c3f67
1920
github.com/lf-edge/eden/sdn/vm v0.0.0-00010101000000-000000000000
2021
github.com/lf-edge/edge-containers v0.0.0-20240207093504-5dfda0619b80
2122
github.com/lf-edge/eve-api/go v0.0.0-20240829123634-7c8ebda876ff
23+
github.com/lf-edge/eve/pkg/pillar v0.0.0-20240923082146-6d403aaa5513
2224
github.com/mcuadros/go-lookup v0.0.0-20200831155250-80f87a4fa5ee
2325
github.com/moby/term v0.5.0
2426
github.com/nerd2/gexto v0.0.0-20190529073929-39468ec063f6
@@ -73,9 +75,14 @@ require (
7375
github.com/docker/go-metrics v0.0.1 // indirect
7476
github.com/docker/go-units v0.5.0 // indirect
7577
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect
78+
github.com/eriknordmark/ipinfo v0.0.0-20230728132417-2d8f4da903d7 // indirect
7679
github.com/felixge/httpsnoop v1.0.4 // indirect
80+
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
7781
github.com/go-logr/logr v1.4.1 // indirect
7882
github.com/go-logr/stdr v1.2.2 // indirect
83+
github.com/go-playground/locales v0.14.1 // indirect
84+
github.com/go-playground/universal-translator v0.18.1 // indirect
85+
github.com/go-playground/validator/v10 v10.15.5 // indirect
7986
github.com/go-resty/resty/v2 v2.7.0 // indirect
8087
github.com/gogo/protobuf v1.3.2 // indirect
8188
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
@@ -89,8 +96,9 @@ require (
8996
github.com/inconshreveable/mousetrap v1.1.0 // indirect
9097
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
9198
github.com/klauspost/compress v1.17.6 // indirect
99+
github.com/leodido/go-urn v1.2.4 // indirect
92100
github.com/lf-edge/eve/libs/depgraph v0.0.0-20220711144346-0659e3b03496 // indirect
93-
github.com/lf-edge/eve/pkg/pillar v0.0.0-20240923082146-6d403aaa5513 // indirect
101+
github.com/lf-edge/eve/pkg/kube/cnirpc v0.0.0-20240315102754-0f6d1f182e0d // indirect
94102
github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect
95103
github.com/magiconair/properties v1.8.6 // indirect
96104
github.com/mattn/go-colorable v0.1.13 // indirect
@@ -120,6 +128,8 @@ require (
120128
github.com/spf13/jwalterweatherman v1.1.0 // indirect
121129
github.com/subosito/gotenv v1.4.0 // indirect
122130
github.com/vbatts/tar-split v0.11.3 // indirect
131+
github.com/vishvananda/netlink v1.2.1-beta.2 // indirect
132+
github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f // indirect
123133
github.com/yvasiyarov/go-metrics v0.0.0-20150112132944-c25f46c4b940 // indirect
124134
github.com/yvasiyarov/gorelic v0.0.7 // indirect
125135
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20160601141957-9c099fbc30e9 // indirect

go.sum

+20-4
Original file line numberDiff line numberDiff line change
@@ -973,6 +973,8 @@ github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJ
973973
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
974974
github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo=
975975
github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w=
976+
github.com/eriknordmark/ipinfo v0.0.0-20230728132417-2d8f4da903d7 h1:25R+h8+75+zyY0+/6TfUsz/arhEltIwNMgDH6IGJ/tc=
977+
github.com/eriknordmark/ipinfo v0.0.0-20230728132417-2d8f4da903d7/go.mod h1:m5kR+NOoKCuA5r6T+9f7q7VfPjPhHskhmxRAebb7avM=
976978
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
977979
github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
978980
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
@@ -1004,6 +1006,8 @@ github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4
10041006
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
10051007
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
10061008
github.com/fxamacker/cbor/v2 v2.4.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo=
1009+
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
1010+
github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
10071011
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
10081012
github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
10091013
github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
@@ -1059,6 +1063,14 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh
10591063
github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
10601064
github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
10611065
github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
1066+
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
1067+
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
1068+
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
1069+
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
1070+
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
1071+
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
1072+
github.com/go-playground/validator/v10 v10.15.5 h1:LEBecTWb/1j5TNY1YYG2RcOUN3R7NLylN+x8TTueE24=
1073+
github.com/go-playground/validator/v10 v10.15.5/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
10621074
github.com/go-redis/redis/v9 v9.0.0-beta.1 h1:oW3jlPic5HhGUbYMH0lidnP+72BgsT+lCwlVud6o2Mc=
10631075
github.com/go-redis/redis/v9 v9.0.0-beta.1/go.mod h1:6gNX1bXdwkpEG0M/hEBNK/Fp8zdyCkjwwKc6vBbfCDI=
10641076
github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY=
@@ -1161,6 +1173,8 @@ github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYV
11611173
github.com/google/go-containerregistry v0.14.0/go.mod h1:aiJ2fp/SXvkWgmYHioXnbMdlgB8eXiiYOY55gfN91Wk=
11621174
github.com/google/go-containerregistry v0.19.1 h1:yMQ62Al6/V0Z7CqIrrS1iYoA5/oQCm88DeNujc7C1KY=
11631175
github.com/google/go-containerregistry v0.19.1/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI=
1176+
github.com/google/go-tpm v0.9.1 h1:0pGc4X//bAlmZzMKf8iz6IsDo1nYTbYJ6FZN/rg4zdM=
1177+
github.com/google/go-tpm v0.9.1/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY=
11641178
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
11651179
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
11661180
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
@@ -1363,6 +1377,8 @@ github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
13631377
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
13641378
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
13651379
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
1380+
github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
1381+
github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
13661382
github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y=
13671383
github.com/lestrrat-go/blackmagic v1.0.0/go.mod h1:TNgH//0vYSs8VXDCfkZLgIrVTTXQELZffUV0tz3MtdQ=
13681384
github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E=
@@ -1373,15 +1389,13 @@ github.com/lf-edge/eden/eserver v0.0.0-20220711180217-6e2bfa9c3f67 h1:lUJ/IASqGL
13731389
github.com/lf-edge/eden/eserver v0.0.0-20220711180217-6e2bfa9c3f67/go.mod h1:D8XwIk3t45EzFr7Yxf4EE3G9H+4H2nEkvte/2ItzkNk=
13741390
github.com/lf-edge/edge-containers v0.0.0-20240207093504-5dfda0619b80 h1:kiqB1Rk8fmWci0idN68azRDJfPxCivD3zNDddWZocFw=
13751391
github.com/lf-edge/edge-containers v0.0.0-20240207093504-5dfda0619b80/go.mod h1:4yXdumKdTzF0URMtxOl8Xnzdxnoy1QR+2dzfOr4CIZY=
1376-
github.com/lf-edge/eve-api/go v0.0.0-20240816135418-f858514b03a3 h1:RyGrCByT/Ip1DlqU37LfyG5MvZ76TIr3eJN7Sv+qbMA=
1377-
github.com/lf-edge/eve-api/go v0.0.0-20240816135418-f858514b03a3/go.mod h1:ot6MhAhBXapUDl/hXklaX4kY88T3uC4PTg0D2wD8DzA=
13781392
github.com/lf-edge/eve-api/go v0.0.0-20240829123634-7c8ebda876ff h1:3uGTOvWQFQkIrlkFalmzUmXINnzmVOAn5Zx0ryBSzxQ=
13791393
github.com/lf-edge/eve-api/go v0.0.0-20240829123634-7c8ebda876ff/go.mod h1:ot6MhAhBXapUDl/hXklaX4kY88T3uC4PTg0D2wD8DzA=
13801394
github.com/lf-edge/eve/libs/depgraph v0.0.0-20220711144346-0659e3b03496 h1:txHCOKhVsKIZKvKWzyIMe3J+ATKk61o4bADhsdLk42Y=
13811395
github.com/lf-edge/eve/libs/depgraph v0.0.0-20220711144346-0659e3b03496/go.mod h1:8gtCaEwMJftnaP8PjjgRStLhOoHquzzlmYzj441QwpU=
13821396
github.com/lf-edge/eve/libs/reconciler v0.0.0-20220711144346-0659e3b03496/go.mod h1:BWuSpe83TvdUmwqhSPa8/gGfapb91OkJ1jNHEnSypr4=
1383-
github.com/lf-edge/eve/pkg/pillar v0.0.0-20240901211357-262f5f152b36 h1:WQ2Mwznrp/H4tA+UBaHj7NF6/O2yhoCyijSY3JYlbQ4=
1384-
github.com/lf-edge/eve/pkg/pillar v0.0.0-20240901211357-262f5f152b36/go.mod h1:B2+BzX9yz7JtcY0ZDRun94KwjO9UjsK/gnBdYDIdgXA=
1397+
github.com/lf-edge/eve/pkg/kube/cnirpc v0.0.0-20240315102754-0f6d1f182e0d h1:tUBb9M6u42LXwHAYHyh22wJeUUQlTpDkXwRXalpRqbo=
1398+
github.com/lf-edge/eve/pkg/kube/cnirpc v0.0.0-20240315102754-0f6d1f182e0d/go.mod h1:Nn3juMJJ1G8dyHOebdZyS4jOB/fuxAd5fIajBaWjHr8=
13851399
github.com/lf-edge/eve/pkg/pillar v0.0.0-20240923082146-6d403aaa5513 h1:6eoKsOh15KAIGzZbLNlMhsOoPiMgoD6+VeuKsYsbqHY=
13861400
github.com/lf-edge/eve/pkg/pillar v0.0.0-20240923082146-6d403aaa5513/go.mod h1:5zB+wlsiTBE2N/Jb0Zr7DaUJMG2OCcAP6X+dyftIdzo=
13871401
github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo=
@@ -1833,10 +1847,12 @@ github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYp
18331847
github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
18341848
github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
18351849
github.com/vishvananda/netlink v1.1.1-0.20210924202909-187053b97868/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
1850+
github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs=
18361851
github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
18371852
github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
18381853
github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
18391854
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
1855+
github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f h1:p4VB7kIXpOQvVn1ZaTIVp+3vuYAXFe3OJEvjbUYJLaA=
18401856
github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
18411857
github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
18421858
github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI=

tests/aziot_legacy/Makefile

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
DEBUG ?= "debug"
2+
3+
# HOSTARCH is the host architecture
4+
# ARCH is the target architecture
5+
# we need to keep track of them separately
6+
HOSTARCH ?= $(shell uname -m)
7+
HOSTOS ?= $(shell uname -s | tr A-Z a-z)
8+
9+
# canonicalized names for host architecture
10+
override HOSTARCH := $(subst aarch64,arm64,$(subst x86_64,amd64,$(HOSTARCH)))
11+
12+
# unless otherwise set, I am building for my own architecture, i.e. not cross-compiling
13+
# and for my OS
14+
ARCH ?= $(HOSTARCH)
15+
OS ?= $(HOSTOS)
16+
17+
# canonicalized names for target architecture
18+
override ARCH := $(subst aarch64,arm64,$(subst x86_64,amd64,$(ARCH)))
19+
20+
WORKDIR ?= $(CURDIR)/../../dist
21+
TESTDIR := tests/$(shell basename $(CURDIR))
22+
BINDIR := $(WORKDIR)/bin
23+
DATADIR := $(WORKDIR)/$(TESTDIR)/
24+
BIN := eden
25+
LOCALBIN := $(BINDIR)/$(BIN)-$(OS)-$(ARCH)
26+
TESTNAME := eden.aziot
27+
TESTBIN := $(TESTNAME).test
28+
TESTSCN := $(TESTNAME).tests.txt
29+
LOCALTESTBIN := $(TESTBIN)-$(OS)-$(ARCH)
30+
LINKDIR := ../../tests/aziot
31+
32+
.DEFAULT_GOAL := help
33+
34+
clean:
35+
rm -rf $(LOCALTESTBIN) $(BINDIR)/$(TESTBIN) $(WORKDIR)/$(TESTSCN) $(CURDIR)/$(TESTBIN) $(BINDIR)/$(TESTBIN)
36+
37+
$(BINDIR):
38+
mkdir -p $@
39+
$(DATADIR):
40+
mkdir -p $@
41+
42+
test:
43+
$(LOCALBIN) test $(CURDIR) -v $(DEBUG)
44+
45+
build: setup
46+
47+
testbin: $(TESTBIN)
48+
$(LOCALTESTBIN): $(BINDIR) *.go
49+
CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go test -c -ldflags "-s -w" -o $@ *.go
50+
51+
$(TESTBIN): $(LOCALTESTBIN)
52+
ln -sf $(LOCALTESTBIN) $(CURDIR)/$(TESTBIN)
53+
54+
setup: testbin $(BINDIR) $(DATADIR)
55+
cp -a $(LOCALTESTBIN) $(CURDIR)/$(TESTBIN) $(BINDIR)
56+
cp -a *.yml $(TESTSCN) $(DATADIR)
57+
58+
debug:
59+
CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go test -c -gcflags "all=-N -l" -o $@ *.go
60+
dlv dap --listen=:12345 --headless=true --api-version=2 exec ./debug -- -test.v
61+
62+
.PHONY: test build setup clean all testbin debug
63+
64+
help:
65+
@echo "EDEN is the harness for testing EVE and ADAM"
66+
@echo
67+
@echo "This Makefile automates commons tasks of EDEN testing"
68+
@echo
69+
@echo "Commonly used maintenance and development targets:"
70+
@echo " build build test-binary (OS and ARCH options supported, for ex. OS=linux ARCH=arm64)"
71+
@echo " setup setup of test environment"
72+
@echo " test run tests"
73+
@echo " clean cleanup of test harness"
74+
@echo
75+
@echo "You need install requirements for EVE (look at https://github.com/lf-edge/eve#install-dependencies)."
76+
@echo "You need access to docker socket and installed qemu packages."

0 commit comments

Comments
 (0)