From e92573c5d7161e7d7fdaaeab9a7ced0b03fa2277 Mon Sep 17 00:00:00 2001 From: Koni Marti Date: Thu, 14 Jul 2022 21:49:54 +0200 Subject: [PATCH] lib: fix tests for 386 platforms Tests in lib/structure_helpers_test.go pass on amd64 platforms but fail on 386 platforms. This can be reproduced with the following steps: 1. Create a Dockerfile in aerc's source folder: FROM i386/alpine:edge RUN apk update && apk upgrade RUN apk add --no-cache go make scdoc WORKDIR aerc COPY . . RUN make CMD make tests 2. Build the image: $ docker buildx build --platform=linux/386 -t test . 3. Run the image: $ docker run --rm --platform=linux/386 -it test The test in lib/structure_helpers_test.go will fail. If the same above steps are done with this patch applied, all tests pass. Signed-off-by: Koni Marti Acked-by: Robin Jarry --- lib/structure_helpers.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/structure_helpers.go b/lib/structure_helpers.go index 1b4a6e6..99a77a2 100644 --- a/lib/structure_helpers.go +++ b/lib/structure_helpers.go @@ -58,7 +58,9 @@ func FindAllNonMultipart(bs *models.BodyStructure, path []int, pathlist [][]int) cur := append(path, i+1) mimetype := strings.ToLower(part.MIMEType) if mimetype != "multipart" { - pathlist = append(pathlist, cur) + tmp := make([]int, len(cur)) + copy(tmp, cur) + pathlist = append(pathlist, tmp) } else if mimetype == "multipart" { if sub := FindAllNonMultipart(part, cur, nil); len(sub) > 0 { pathlist = append(pathlist, sub...)