mirror of
https://github.com/golang/go
synced 2024-11-19 02:24:41 -07:00
runtime: make TestCgoExternalThreadPanic run on windows
LGTM=rsc R=golang-codereviews, bradfitz, rsc CC=golang-codereviews https://golang.org/cl/163540043
This commit is contained in:
parent
bfe459adc9
commit
f9c4c16dce
@ -36,10 +36,14 @@ func TestCgoTraceback(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCgoExternalThreadPanic(t *testing.T) {
|
||||
if runtime.GOOS == "windows" || runtime.GOOS == "plan9" {
|
||||
if runtime.GOOS == "plan9" {
|
||||
t.Skipf("no pthreads on %s", runtime.GOOS)
|
||||
}
|
||||
got := executeTest(t, cgoExternalThreadPanicSource, nil, "main.c", cgoExternalThreadPanicC)
|
||||
csrc := cgoExternalThreadPanicC
|
||||
if runtime.GOOS == "windows" {
|
||||
csrc = cgoExternalThreadPanicC_windows
|
||||
}
|
||||
got := executeTest(t, cgoExternalThreadPanicSource, nil, "main.c", csrc)
|
||||
want := "panic: BOOM"
|
||||
if !strings.Contains(got, want) {
|
||||
t.Fatalf("want failure containing %q. output:\n%s\n", want, got)
|
||||
@ -169,3 +173,24 @@ start(void)
|
||||
printf("pthread_create failed\n");
|
||||
}
|
||||
`
|
||||
|
||||
const cgoExternalThreadPanicC_windows = `
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
void gopanic(void);
|
||||
|
||||
static void*
|
||||
die(void* x)
|
||||
{
|
||||
gopanic();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
start(void)
|
||||
{
|
||||
if(_beginthreadex(0, 0, die, 0, 0, 0) != 0)
|
||||
printf("_beginthreadex failed\n");
|
||||
}
|
||||
`
|
||||
|
Loading…
Reference in New Issue
Block a user