From d2af048099b2e53d9db01237d38271a837c48ed4 Mon Sep 17 00:00:00 2001
From: Guido Berhoerster <guido+ubports@berhoerster.name>
Date: Thu, 24 Jul 2025 09:00:03 +0200
Subject: [PATCH] Remove leftover testing code

The tests in qml_test.go were removed in c2a3c1da and the remaining
architecture-specific hacks were causing build failures on
non-arm(64)/x86(_64). They will likely not work on newer Go versions anyway.
---
 qml.v1/cdata/cdata.go        |  4 ---
 qml.v1/cdata/cdata14_386.s   |  8 -----
 qml.v1/cdata/cdata14_amd64.s |  8 -----
 qml.v1/cdata/cdata14_arm.s   |  8 -----
 qml.v1/cdata/cdata14_arm64.s |  8 -----
 qml.v1/testing.go            | 69 ------------------------------------
 6 files changed, 105 deletions(-)
 delete mode 100644 qml.v1/cdata/cdata.go
 delete mode 100644 qml.v1/cdata/cdata14_386.s
 delete mode 100644 qml.v1/cdata/cdata14_amd64.s
 delete mode 100644 qml.v1/cdata/cdata14_arm.s
 delete mode 100644 qml.v1/cdata/cdata14_arm64.s
 delete mode 100644 qml.v1/testing.go

diff --git a/qml.v1/cdata/cdata.go b/qml.v1/cdata/cdata.go
deleted file mode 100644
index f66d0d3..0000000
--- a/qml.v1/cdata/cdata.go
+++ /dev/null
@@ -1,4 +0,0 @@
-// Package cdata supports the implementation of the qml package.
-package cdata
-
-func Addrs() (uintptr, uintptr)
diff --git a/qml.v1/cdata/cdata14_386.s b/qml.v1/cdata/cdata14_386.s
deleted file mode 100644
index b42f01b..0000000
--- a/qml.v1/cdata/cdata14_386.s
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "textflag.h"
-
-TEXT ·Addrs(SB),NOSPLIT,$0-8
-	MOVL	$runtime·main(SB), AX
-	MOVL	AX, ret+0(FP)
-	MOVL	$runtime·main_main(SB), AX
-	MOVL	AX, ret+8(FP)
-	RET
diff --git a/qml.v1/cdata/cdata14_amd64.s b/qml.v1/cdata/cdata14_amd64.s
deleted file mode 100644
index 7fe0022..0000000
--- a/qml.v1/cdata/cdata14_amd64.s
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "textflag.h"
-
-TEXT ·Addrs(SB),NOSPLIT,$0-16
-	MOVQ	$runtime·main(SB), AX
-	MOVQ	AX, ret+0(FP)
-	MOVQ	$runtime·main_main(SB), AX
-	MOVQ	AX, ret+8(FP)
-	RET
diff --git a/qml.v1/cdata/cdata14_arm.s b/qml.v1/cdata/cdata14_arm.s
deleted file mode 100644
index 4ba88c6..0000000
--- a/qml.v1/cdata/cdata14_arm.s
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "textflag.h"
-
-TEXT ·Addrs(SB),NOSPLIT,$0-8
-	MOVW	$runtime·main(SB), R0
-	MOVW	R0, ret+0(FP)
-	MOVW	$runtime·main_main(SB), R0
-	MOVW	R0, ret+4(FP)
-	RET
diff --git a/qml.v1/cdata/cdata14_arm64.s b/qml.v1/cdata/cdata14_arm64.s
deleted file mode 100644
index 09ccf78..0000000
--- a/qml.v1/cdata/cdata14_arm64.s
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "textflag.h"
-
-TEXT ·Addrs(SB),NOSPLIT,$0-16
-	MOVD	$runtime·main(SB), R0
-	MOVD	R0, ret+0(FP)
-	MOVD	$runtime·main_main(SB), R0
-	MOVD	R0, ret+8(FP)
-	RET
diff --git a/qml.v1/testing.go b/qml.v1/testing.go
deleted file mode 100644
index ae9d6d3..0000000
--- a/qml.v1/testing.go
+++ /dev/null
@@ -1,69 +0,0 @@
-package qml
-
-// #include <stdlib.h>
-// int mprotect(void *addr, size_t len, int prot);
-import "C"
-
-import (
-	"bytes"
-	"encoding/binary"
-	"gitlab.com/ubports/development/core/ciborium/qml.v1/cdata"
-	"reflect"
-	"unsafe"
-)
-
-const pageSize = 4096
-
-func qmain() {
-	Run(func() error { tmain(); return nil })
-}
-
-func tmain() { tstub() }
-func tstub() { tstub() }
-
-func SetupTesting() {
-	ptr := func(f func()) uintptr { return reflect.ValueOf(f).Pointer() }
-	rmain, mmain := cdata.Addrs()
-	fset(rmain, mmain, ptr(qmain))
-	fset(ptr(tmain), ptr(tstub), mmain)
-}
-
-const (
-	protREAD  = 1
-	protWRITE = 2
-	protEXEC  = 4
-)
-
-func fset(target, old, new uintptr) {
-	pageOffset := target % pageSize
-	pageAddr := target - pageOffset
-
-	var mem []byte
-	memh := (*reflect.SliceHeader)(unsafe.Pointer(&mem))
-	memh.Data = pageAddr
-	memh.Len = pageSize * 2
-	memh.Cap = pageSize * 2
-
-	oldAddr := make([]byte, 8)
-	newAddr := make([]byte, 8)
-
-	binary.LittleEndian.PutUint64(oldAddr, uint64(old))
-	binary.LittleEndian.PutUint64(newAddr, uint64(new))
-
-	// BSD's syscall package misses Mprotect. Use cgo instead.
-	C.mprotect(unsafe.Pointer(pageAddr), C.size_t(len(mem)), protEXEC|protREAD|protWRITE)
-	defer C.mprotect(unsafe.Pointer(pageAddr), C.size_t(len(mem)), protEXEC|protREAD)
-
-	delta := make([]byte, 4)
-	for i, c := range mem[pageOffset:] {
-		if c == 0xe8 && int(pageOffset)+i+5 < len(mem) {
-			instrAddr := pageAddr + pageOffset + uintptr(i)
-			binary.LittleEndian.PutUint32(delta, uint32(old-instrAddr-5))
-			if bytes.Equal(mem[int(pageOffset)+i+1:int(pageOffset)+i+5], delta) {
-				binary.LittleEndian.PutUint32(mem[int(pageOffset)+i+1:], uint32(new-instrAddr-5))
-				return
-			}
-		}
-	}
-	panic("cannot setup qml package for testing")
-}
-- 
GitLab
