Skip to content

Commit

Permalink
cmd/link: new test case for Darwin/DWARF
Browse files Browse the repository at this point in the history
Test case for issue 32233.

Updates #32233.

Change-Id: I0e3b4a46832f39de4ef36d8fd8c6070bf9b1a019
Reviewed-on: https://go-review.googlesource.com/c/go/+/178726
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
  • Loading branch information
thanm committed May 30, 2019
1 parent 7e05e97 commit 8ca524a
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/cmd/link/internal/ld/dwarf_test.go
Expand Up @@ -1195,3 +1195,26 @@ func TestPackageNameAttr(t *testing.T) {
}
}
}

func TestMachoIssue32233(t *testing.T) {
testenv.MustHaveGoBuild(t)
testenv.MustHaveCGO(t)

if runtime.GOOS != "darwin" {
t.Skip("skipping; test only interesting on darwin")
}

tmpdir, err := ioutil.TempDir("", "TestMachoIssue32233")
if err != nil {
t.Fatalf("could not create directory: %v", err)
}
defer os.RemoveAll(tmpdir)

wd, err2 := os.Getwd()
if err2 != nil {
t.Fatalf("where am I? %v", err)
}
pdir := filepath.Join(wd, "testdata", "issue32233", "main")
f := gobuildTestdata(t, tmpdir, pdir, DefaultOpt)
f.Close()
}
14 changes: 14 additions & 0 deletions src/cmd/link/internal/ld/testdata/issue32233/lib/ObjC.m
@@ -0,0 +1,14 @@
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

#import <Foundation/Foundation.h>
#import <UserNotifications/UserNotifications.h>

BOOL function(void) {
if (@available(macOS 10.14, *)) {
UNUserNotificationCenter *center =
[UNUserNotificationCenter currentNotificationCenter];
}
return NO;
}
19 changes: 19 additions & 0 deletions src/cmd/link/internal/ld/testdata/issue32233/lib/lib.go
@@ -0,0 +1,19 @@
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package lib

/*
#cgo darwin CFLAGS: -mmacosx-version-min=10.10 -D__MAC_OS_X_VERSION_MAX_ALLOWED=101450 -Wunguarded-availability-new
#cgo darwin LDFLAGS: -framework Foundation -framework UserNotifications
#include "stdlib.h"
int function(void);
*/
import "C"
import "fmt"

func DoC() {
C.function()
fmt.Println("called c function")
}
11 changes: 11 additions & 0 deletions src/cmd/link/internal/ld/testdata/issue32233/main/main.go
@@ -0,0 +1,11 @@
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import "cmd/link/internal/ld/testdata/issue32233/lib"

func main() {
lib.DoC()
}

0 comments on commit 8ca524a

Please sign in to comment.