gopls/internal/test/integration/completion: make test more go1.26-robust

Fix the name of the *testing.F function added in Go 1.26
(ArtifactDir, not Artifact), and sort it correctly.

Do not modify the want list in compareCompletionLabels, which causes
issues when a modified completion list is reused in a later test.

Updates golang/go#74987

Change-Id: I2d380979c346283a3eeedeb979b3747280018c93
Reviewed-on: https://go-review.googlesource.com/c/tools/+/709635
Reviewed-by: Alan Donovan <adonovan@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Damien Neil <dneil@google.com>
diff --git a/gopls/internal/test/integration/completion/completion18_test.go b/gopls/internal/test/integration/completion/completion18_test.go
index f0fd1db..6ab2c55 100644
--- a/gopls/internal/test/integration/completion/completion18_test.go
+++ b/gopls/internal/test/integration/completion/completion18_test.go
@@ -107,7 +107,7 @@
 	}{
 		// To avoid breaking these assertions as the "testing" package evolves,
 		// use an optional (?) suffix for newer symbols.
-		{"a_test.go", "f.Ad", 3, []string{"Add", "Attr", "Artifact?"}}, // Attr is 1.25, Artifact is 1.26
+		{"a_test.go", "f.Ad", 3, []string{"Add", "ArtifactDir?", "Attr"}}, // Attr is 1.25, Artifact is 1.26
 		{"c_test.go", " f.F", 4, []string{"Failed"}},
 		{"c_test.go", "f.N", 3, []string{"Name"}},
 		{"b_test.go", "f.F", 3, []string{"Fuzz(func(t *testing.T, a []byte)", "Fail", "FailNow",
diff --git a/gopls/internal/test/integration/completion/completion_test.go b/gopls/internal/test/integration/completion/completion_test.go
index e07b86d..68bae9d 100644
--- a/gopls/internal/test/integration/completion/completion_test.go
+++ b/gopls/internal/test/integration/completion/completion_test.go
@@ -285,7 +285,7 @@
 	// A 'want' item with a '?' suffix is optional, to ease
 	// migration across versions. Remove any that are not present
 	// in the 'got' set.
-	out := want[:0] // in-place compaction
+	var out []string
 	for _, item := range want {
 		item, optional := strings.CutSuffix(item, "?")
 		if optional && !slices.Contains(got, item) {