diff mbox series

[2/2] selftests/x86/sgx: Move to selftests/sgx

Message ID 20200320174716.27944-2-jarkko.sakkinen@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series [1/2] Revert "selftests/x86: Recurse into subdirectories" | expand

Commit Message

Jarkko Sakkinen March 20, 2020, 5:47 p.m. UTC
Move selftest under the top level selftests directory so that we don't
need to clutter x86/Makefile. The changes made for x86/Makefile caused
also issues with packaging the selftests. Finally, SGX assets need their
own tailored compilation environment.

With this change BuildRoot nicely packages both standard x86 selftests
and our SGX test.

Cc: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
---
 tools/testing/selftests/Makefile                     |  1 +
 tools/testing/selftests/{x86 => }/sgx/.gitignore     |  0
 tools/testing/selftests/{x86 => }/sgx/Makefile       | 12 +++++++++---
 tools/testing/selftests/{x86 => }/sgx/call.S         |  0
 tools/testing/selftests/{x86 => }/sgx/defines.h      |  4 ++--
 tools/testing/selftests/{x86 => }/sgx/encl.c         |  0
 tools/testing/selftests/{x86 => }/sgx/encl.lds       |  0
 .../testing/selftests/{x86 => }/sgx/encl_bootstrap.S |  0
 tools/testing/selftests/{x86 => }/sgx/main.c         |  0
 tools/testing/selftests/{x86 => }/sgx/main.h         |  0
 tools/testing/selftests/{x86 => }/sgx/sign.c         |  0
 11 files changed, 12 insertions(+), 5 deletions(-)
 rename tools/testing/selftests/{x86 => }/sgx/.gitignore (100%)
 rename tools/testing/selftests/{x86 => }/sgx/Makefile (83%)
 rename tools/testing/selftests/{x86 => }/sgx/call.S (100%)
 rename tools/testing/selftests/{x86 => }/sgx/defines.h (71%)
 rename tools/testing/selftests/{x86 => }/sgx/encl.c (100%)
 rename tools/testing/selftests/{x86 => }/sgx/encl.lds (100%)
 rename tools/testing/selftests/{x86 => }/sgx/encl_bootstrap.S (100%)
 rename tools/testing/selftests/{x86 => }/sgx/main.c (100%)
 rename tools/testing/selftests/{x86 => }/sgx/main.h (100%)
 rename tools/testing/selftests/{x86 => }/sgx/sign.c (100%)

Comments

Jarkko Sakkinen March 20, 2020, 5:52 p.m. UTC | #1
On Fri, Mar 20, 2020 at 07:47:16PM +0200, Jarkko Sakkinen wrote:
> Move selftest under the top level selftests directory so that we don't
> need to clutter x86/Makefile. The changes made for x86/Makefile caused
> also issues with packaging the selftests. Finally, SGX assets need their
> own tailored compilation environment.
> 
> With this change BuildRoot nicely packages both standard x86 selftests
> and our SGX test.
> 
> Cc: Sean Christopherson <sean.j.christopherson@intel.com>
> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>

Promise that this my last update to selftests. Just wanted to hammer
these quickly to cause minimum amount of distraction with the other
patch set. Otherwise, would be very hard to focus on reviewing those
chages. The changes I've done I think are no brainers. That's why I
don't hold for long before merging.

/Jarkko
Jarkko Sakkinen March 20, 2020, 6:09 p.m. UTC | #2
On Fri, Mar 20, 2020 at 07:52:17PM +0200, Jarkko Sakkinen wrote:
> On Fri, Mar 20, 2020 at 07:47:16PM +0200, Jarkko Sakkinen wrote:
> > Move selftest under the top level selftests directory so that we don't
> > need to clutter x86/Makefile. The changes made for x86/Makefile caused
> > also issues with packaging the selftests. Finally, SGX assets need their
> > own tailored compilation environment.
> > 
> > With this change BuildRoot nicely packages both standard x86 selftests
> > and our SGX test.
> > 
> > Cc: Sean Christopherson <sean.j.christopherson@intel.com>
> > Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
> 
> Promise that this my last update to selftests. Just wanted to hammer
> these quickly to cause minimum amount of distraction with the other
> patch set. Otherwise, would be very hard to focus on reviewing those
> chages. The changes I've done I think are no brainers. That's why I
> don't hold for long before merging.

Merged:

# ./test_sgx
SUCCESS

Also:

# ls sgx
encl.bin  test_sgx
# ls x86
check_initial_reg_state_64  syscall_arg_fault_64
fsgsbase_64                 syscall_nt_64
ioperm_64                   syscall_numbering_64
iopl_64                     sysret_rip_64
mov_ss_trap_64              sysret_ss_attrs_64
protection_keys_64          test_mremap_vdso_64
sigreturn_64                test_vdso_64
single_step_syscall_64      test_vsyscall_64

/Jarkko
Jarkko Sakkinen March 20, 2020, 6:10 p.m. UTC | #3
On Fri, Mar 20, 2020 at 08:09:55PM +0200, Jarkko Sakkinen wrote:
> On Fri, Mar 20, 2020 at 07:52:17PM +0200, Jarkko Sakkinen wrote:
> > On Fri, Mar 20, 2020 at 07:47:16PM +0200, Jarkko Sakkinen wrote:
> > > Move selftest under the top level selftests directory so that we don't
> > > need to clutter x86/Makefile. The changes made for x86/Makefile caused
> > > also issues with packaging the selftests. Finally, SGX assets need their
> > > own tailored compilation environment.
> > > 
> > > With this change BuildRoot nicely packages both standard x86 selftests
> > > and our SGX test.
> > > 
> > > Cc: Sean Christopherson <sean.j.christopherson@intel.com>
> > > Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
> > 
> > Promise that this my last update to selftests. Just wanted to hammer
> > these quickly to cause minimum amount of distraction with the other
> > patch set. Otherwise, would be very hard to focus on reviewing those
> > chages. The changes I've done I think are no brainers. That's why I
> > don't hold for long before merging.
> 
> Merged:
> 
> # ./test_sgx
> SUCCESS
> 
> Also:
> 
> # ls sgx
> encl.bin  test_sgx
> # ls x86
> check_initial_reg_state_64  syscall_arg_fault_64
> fsgsbase_64                 syscall_nt_64
> ioperm_64                   syscall_numbering_64
> iopl_64                     sysret_rip_64
> mov_ss_trap_64              sysret_ss_attrs_64
> protection_keys_64          test_mremap_vdso_64
> sigreturn_64                test_vdso_64
> single_step_syscall_64      test_vsyscall_64

Nothing else in the queue for selftests.

/Jarkko
Sean Christopherson March 30, 2020, 2:51 p.m. UTC | #4
On Fri, Mar 20, 2020 at 07:47:16PM +0200, Jarkko Sakkinen wrote:
> Move selftest under the top level selftests directory so that we don't
> need to clutter x86/Makefile. The changes made for x86/Makefile caused
> also issues with packaging the selftests. Finally, SGX assets need their
> own tailored compilation environment.
> 
> With this change BuildRoot nicely packages both standard x86 selftests
> and our SGX test.
> 
> Cc: Sean Christopherson <sean.j.christopherson@intel.com>
> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
> ---
>  tools/testing/selftests/Makefile                     |  1 +
>  tools/testing/selftests/{x86 => }/sgx/.gitignore     |  0
>  tools/testing/selftests/{x86 => }/sgx/Makefile       | 12 +++++++++---
>  tools/testing/selftests/{x86 => }/sgx/call.S         |  0
>  tools/testing/selftests/{x86 => }/sgx/defines.h      |  4 ++--
>  tools/testing/selftests/{x86 => }/sgx/encl.c         |  0
>  tools/testing/selftests/{x86 => }/sgx/encl.lds       |  0
>  .../testing/selftests/{x86 => }/sgx/encl_bootstrap.S |  0
>  tools/testing/selftests/{x86 => }/sgx/main.c         |  0
>  tools/testing/selftests/{x86 => }/sgx/main.h         |  0
>  tools/testing/selftests/{x86 => }/sgx/sign.c         |  0
>  11 files changed, 12 insertions(+), 5 deletions(-)
>  rename tools/testing/selftests/{x86 => }/sgx/.gitignore (100%)
>  rename tools/testing/selftests/{x86 => }/sgx/Makefile (83%)
>  rename tools/testing/selftests/{x86 => }/sgx/call.S (100%)
>  rename tools/testing/selftests/{x86 => }/sgx/defines.h (71%)
>  rename tools/testing/selftests/{x86 => }/sgx/encl.c (100%)
>  rename tools/testing/selftests/{x86 => }/sgx/encl.lds (100%)
>  rename tools/testing/selftests/{x86 => }/sgx/encl_bootstrap.S (100%)
>  rename tools/testing/selftests/{x86 => }/sgx/main.c (100%)
>  rename tools/testing/selftests/{x86 => }/sgx/main.h (100%)
>  rename tools/testing/selftests/{x86 => }/sgx/sign.c (100%)
> 
> diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
> index 6ec503912bea..183a050b5bda 100644
> --- a/tools/testing/selftests/Makefile
> +++ b/tools/testing/selftests/Makefile
> @@ -63,6 +63,7 @@ TARGETS += user
>  TARGETS += vm
>  TARGETS += x86
>  TARGETS += zram
> +TARGETS += sgx

The scope of the subject for the selftest patch probably should be changed
to drop the "x86" part, e.g.

  selftests/sgx: Add a selftest for SGX

or
  selftests: Add a selftest for SGX

instead of

  selftests/x86: Add a selftest for SGX
Jarkko Sakkinen March 30, 2020, 7:19 p.m. UTC | #5
On Mon, Mar 30, 2020 at 07:51:01AM -0700, Sean Christopherson wrote:
> The scope of the subject for the selftest patch probably should be changed
> to drop the "x86" part, e.g.
> 
>   selftests/sgx: Add a selftest for SGX
> 
> or
>   selftests: Add a selftest for SGX
> 
> instead of
> 
>   selftests/x86: Add a selftest for SGX

You are absolutely right as it is the change that adds the whole test
suite.

/Jarkko
diff mbox series

Patch

diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
index 6ec503912bea..183a050b5bda 100644
--- a/tools/testing/selftests/Makefile
+++ b/tools/testing/selftests/Makefile
@@ -63,6 +63,7 @@  TARGETS += user
 TARGETS += vm
 TARGETS += x86
 TARGETS += zram
+TARGETS += sgx
 #Please keep the TARGETS list alphabetically sorted
 # Run "make quicktest=1 run_tests" or
 # "make quicktest=1 kselftest" from top level Makefile
diff --git a/tools/testing/selftests/x86/sgx/.gitignore b/tools/testing/selftests/sgx/.gitignore
similarity index 100%
rename from tools/testing/selftests/x86/sgx/.gitignore
rename to tools/testing/selftests/sgx/.gitignore
diff --git a/tools/testing/selftests/x86/sgx/Makefile b/tools/testing/selftests/sgx/Makefile
similarity index 83%
rename from tools/testing/selftests/x86/sgx/Makefile
rename to tools/testing/selftests/sgx/Makefile
index 789ebbbfddcb..d9c3b3a1983b 100644
--- a/tools/testing/selftests/x86/sgx/Makefile
+++ b/tools/testing/selftests/sgx/Makefile
@@ -1,6 +1,11 @@ 
-top_srcdir = ../../../../..
+top_srcdir = ../../../..
 
-include ../../lib.mk
+include ../lib.mk
+
+.PHONY: all clean
+
+CAN_BUILD_X86_64 := $(shell ../x86/check_cc.sh $(CC) \
+			    ../x86/trivial_64bit_program.c)
 
 ifndef OBJCOPY
 OBJCOPY := $(CROSS_COMPILE)objcopy
@@ -13,7 +18,9 @@  ENCL_CFLAGS := -Wall -Werror -static -nostdlib -nostartfiles -fPIC \
 
 TEST_CUSTOM_PROGS := $(OUTPUT)/test_sgx $(OUTPUT)/encl.bin
 
+ifeq ($(CAN_BUILD_X86_64), 1)
 all: $(TEST_CUSTOM_PROGS)
+endif
 
 $(OUTPUT)/test_sgx: $(OUTPUT)/main.o $(OUTPUT)/sign.o $(OUTPUT)/call.o
 	$(CC) $(HOST_CFLAGS) -o $@ $^ -lcrypto
@@ -40,4 +47,3 @@  EXTRA_CLEAN := \
 	$(OUTPUT)/test_sgx \
 	$(OUTPUT)/test_sgx.o \
 
-.PHONY: clean
diff --git a/tools/testing/selftests/x86/sgx/call.S b/tools/testing/selftests/sgx/call.S
similarity index 100%
rename from tools/testing/selftests/x86/sgx/call.S
rename to tools/testing/selftests/sgx/call.S
diff --git a/tools/testing/selftests/x86/sgx/defines.h b/tools/testing/selftests/sgx/defines.h
similarity index 71%
rename from tools/testing/selftests/x86/sgx/defines.h
rename to tools/testing/selftests/sgx/defines.h
index 0f91175088f6..8f4d17cf8cee 100644
--- a/tools/testing/selftests/x86/sgx/defines.h
+++ b/tools/testing/selftests/sgx/defines.h
@@ -13,7 +13,7 @@ 
 #define __aligned(x) __attribute__((__aligned__(x)))
 #define __packed __attribute__((packed))
 
-#include "../../../../../arch/x86/kernel/cpu/sgx/arch.h"
-#include "../../../../../arch/x86/include/uapi/asm/sgx.h"
+#include "../../../../arch/x86/kernel/cpu/sgx/arch.h"
+#include "../../../../arch/x86/include/uapi/asm/sgx.h"
 
 #endif /* DEFINES_H */
diff --git a/tools/testing/selftests/x86/sgx/encl.c b/tools/testing/selftests/sgx/encl.c
similarity index 100%
rename from tools/testing/selftests/x86/sgx/encl.c
rename to tools/testing/selftests/sgx/encl.c
diff --git a/tools/testing/selftests/x86/sgx/encl.lds b/tools/testing/selftests/sgx/encl.lds
similarity index 100%
rename from tools/testing/selftests/x86/sgx/encl.lds
rename to tools/testing/selftests/sgx/encl.lds
diff --git a/tools/testing/selftests/x86/sgx/encl_bootstrap.S b/tools/testing/selftests/sgx/encl_bootstrap.S
similarity index 100%
rename from tools/testing/selftests/x86/sgx/encl_bootstrap.S
rename to tools/testing/selftests/sgx/encl_bootstrap.S
diff --git a/tools/testing/selftests/x86/sgx/main.c b/tools/testing/selftests/sgx/main.c
similarity index 100%
rename from tools/testing/selftests/x86/sgx/main.c
rename to tools/testing/selftests/sgx/main.c
diff --git a/tools/testing/selftests/x86/sgx/main.h b/tools/testing/selftests/sgx/main.h
similarity index 100%
rename from tools/testing/selftests/x86/sgx/main.h
rename to tools/testing/selftests/sgx/main.h
diff --git a/tools/testing/selftests/x86/sgx/sign.c b/tools/testing/selftests/sgx/sign.c
similarity index 100%
rename from tools/testing/selftests/x86/sgx/sign.c
rename to tools/testing/selftests/sgx/sign.c