Skip to content

Commit e33c2aa

Browse files
tongyimingmikatong
andauthored
fix: support unit test parallel (#1011)
Co-authored-by: mikatong <mikatong@tencent.com>
1 parent e0abdc1 commit e33c2aa

File tree

2 files changed

+64
-30
lines changed

2 files changed

+64
-30
lines changed

tencentcloud/provider_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ func testAccPreCheck(t *testing.T) {
6767
}
6868
}
6969

70+
func testAccStepPreConfigSetTempAKSK(t *testing.T, accountType string) {
71+
testAccPreCheckCommon(t, accountType)
72+
}
73+
7074
func testAccPreCheckCommon(t *testing.T, accountType string) {
7175
if v := os.Getenv(PROVIDER_REGION); v == "" {
7276
log.Printf("[INFO] Testing: Using %s as test region", defaultRegion)
@@ -97,6 +101,14 @@ func testAccPreCheckCommon(t *testing.T, accountType string) {
97101
}
98102
os.Setenv(PROVIDER_SECRET_ID, secretId)
99103
os.Setenv(PROVIDER_SECRET_KEY, secretKey)
104+
case accountType == ACCOUNT_TYPE_COMMON:
105+
secretId := os.Getenv(COMMON_PROVIDER_SECRET_ID)
106+
secretKey := os.Getenv(COMMON_PROVIDER_SECRET_KEY)
107+
if secretId == "" || secretKey == "" {
108+
t.Fatalf("%v and %v must be set for acceptance tests\n", COMMON_PROVIDER_SECRET_ID, COMMON_PROVIDER_SECRET_KEY)
109+
}
110+
os.Setenv(PROVIDER_SECRET_ID, secretId)
111+
os.Setenv(PROVIDER_SECRET_KEY, secretKey)
100112
default:
101113
if v := os.Getenv(PROVIDER_SECRET_ID); v == "" {
102114
t.Fatalf("%v must be set for acceptance tests\n", PROVIDER_SECRET_ID)

tencentcloud/resource_tc_instance_test.go

Lines changed: 52 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ func TestAccTencentCloudInstanceBasic(t *testing.T) {
7272
CheckDestroy: testAccCheckInstanceDestroy,
7373
Steps: []resource.TestStep{
7474
{
75-
Config: testAccTencentCloudInstanceBasic,
75+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
76+
Config: testAccTencentCloudInstanceBasic,
7677
Check: resource.ComposeTestCheckFunc(
7778
testAccCheckTencentCloudDataSourceID(id),
7879
testAccCheckTencentCloudInstanceExists(id),
@@ -84,7 +85,8 @@ func TestAccTencentCloudInstanceBasic(t *testing.T) {
8485
),
8586
},
8687
{
87-
Config: testAccTencentCloudInstanceModifyInstanceType,
88+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
89+
Config: testAccTencentCloudInstanceModifyInstanceType,
8890
Check: resource.ComposeTestCheckFunc(
8991
testAccCheckTencentCloudInstanceExists(id),
9092
resource.TestCheckResourceAttr(id, "instance_status", "RUNNING"),
@@ -112,7 +114,8 @@ func TestAccTencentCloudInstanceWithDataDisk(t *testing.T) {
112114
CheckDestroy: testAccCheckInstanceDestroy,
113115
Steps: []resource.TestStep{
114116
{
115-
Config: testAccTencentCloudInstanceWithDataDisk,
117+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
118+
Config: testAccTencentCloudInstanceWithDataDisk,
116119
Check: resource.ComposeTestCheckFunc(
117120
testAccCheckTencentCloudDataSourceID(id),
118121
testAccCheckTencentCloudInstanceExists(id),
@@ -127,7 +130,8 @@ func TestAccTencentCloudInstanceWithDataDisk(t *testing.T) {
127130
),
128131
},
129132
{
130-
Config: testAccTencentCloudInstanceWithDataDiskUpdate,
133+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
134+
Config: testAccTencentCloudInstanceWithDataDiskUpdate,
131135
Check: resource.ComposeTestCheckFunc(
132136
testAccCheckTencentCloudDataSourceID(id),
133137
testAccCheckTencentCloudInstanceExists(id),
@@ -156,7 +160,8 @@ func TestAccTencentCloudInstanceWithNetwork(t *testing.T) {
156160
CheckDestroy: testAccCheckInstanceDestroy,
157161
Steps: []resource.TestStep{
158162
{
159-
Config: testAccTencentCloudInstanceWithNetworkFalse("false"),
163+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
164+
Config: testAccTencentCloudInstanceWithNetworkFalse("false"),
160165
Check: resource.ComposeTestCheckFunc(
161166
testAccCheckTencentCloudDataSourceID(id),
162167
testAccCheckTencentCloudInstanceExists(id),
@@ -165,7 +170,8 @@ func TestAccTencentCloudInstanceWithNetwork(t *testing.T) {
165170
),
166171
},
167172
{
168-
Config: testAccTencentCloudInstanceWithNetwork("true", 5),
173+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
174+
Config: testAccTencentCloudInstanceWithNetwork("true", 5),
169175
Check: resource.ComposeTestCheckFunc(
170176
testAccCheckTencentCloudDataSourceID(id),
171177
testAccCheckTencentCloudInstanceExists(id),
@@ -179,7 +185,7 @@ func TestAccTencentCloudInstanceWithNetwork(t *testing.T) {
179185
}
180186

181187
func TestAccTencentCloudInstanceWithPrivateIP(t *testing.T) {
182-
188+
t.Parallel()
183189
id := "tencentcloud_instance.foo"
184190
resource.Test(t, resource.TestCase{
185191
PreCheck: func() { testAccPreCheck(t) },
@@ -188,7 +194,8 @@ func TestAccTencentCloudInstanceWithPrivateIP(t *testing.T) {
188194
CheckDestroy: testAccCheckInstanceDestroy,
189195
Steps: []resource.TestStep{
190196
{
191-
Config: testAccTencentCloudInstanceWithPrivateIP,
197+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
198+
Config: testAccTencentCloudInstanceWithPrivateIP,
192199
Check: resource.ComposeTestCheckFunc(
193200
testAccCheckTencentCloudDataSourceID(id),
194201
testAccCheckTencentCloudInstanceExists(id),
@@ -210,7 +217,8 @@ func TestAccTencentCloudInstanceWithKeyPair(t *testing.T) {
210217
CheckDestroy: testAccCheckInstanceDestroy,
211218
Steps: []resource.TestStep{
212219
{
213-
Config: testAccTencentCloudInstanceWithKeyPair("key_pair_0"),
220+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
221+
Config: testAccTencentCloudInstanceWithKeyPair("key_pair_0"),
214222
Check: resource.ComposeTestCheckFunc(
215223
testAccCheckTencentCloudDataSourceID(id),
216224
testAccCheckTencentCloudInstanceExists(id),
@@ -219,7 +227,8 @@ func TestAccTencentCloudInstanceWithKeyPair(t *testing.T) {
219227
),
220228
},
221229
{
222-
Config: testAccTencentCloudInstanceWithKeyPair("key_pair_1"),
230+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
231+
Config: testAccTencentCloudInstanceWithKeyPair("key_pair_1"),
223232
Check: resource.ComposeTestCheckFunc(
224233
testAccCheckTencentCloudDataSourceID(id),
225234
testAccCheckTencentCloudInstanceExists(id),
@@ -242,7 +251,8 @@ func TestAccTencentCloudInstanceWithPassword(t *testing.T) {
242251
CheckDestroy: testAccCheckInstanceDestroy,
243252
Steps: []resource.TestStep{
244253
{
245-
Config: testAccTencentCloudInstanceWithPassword("TF_test_123"),
254+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
255+
Config: testAccTencentCloudInstanceWithPassword("TF_test_123"),
246256
Check: resource.ComposeTestCheckFunc(
247257
testAccCheckTencentCloudDataSourceID(id),
248258
testAccCheckTencentCloudInstanceExists(id),
@@ -251,7 +261,8 @@ func TestAccTencentCloudInstanceWithPassword(t *testing.T) {
251261
),
252262
},
253263
{
254-
Config: testAccTencentCloudInstanceWithPassword("TF_test_123456"),
264+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
265+
Config: testAccTencentCloudInstanceWithPassword("TF_test_123456"),
255266
Check: resource.ComposeTestCheckFunc(
256267
testAccCheckTencentCloudDataSourceID(id),
257268
testAccCheckTencentCloudInstanceExists(id),
@@ -264,17 +275,17 @@ func TestAccTencentCloudInstanceWithPassword(t *testing.T) {
264275
}
265276

266277
func TestAccTencentCloudInstanceWithImageLogin(t *testing.T) {
267-
t.Parallel()
268278

269279
id := "tencentcloud_instance.foo"
270280
resource.Test(t, resource.TestCase{
271-
PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) },
281+
PreCheck: func() { testAccPreCheck(t) },
272282
IDRefreshName: id,
273283
Providers: testAccProviders,
274284
CheckDestroy: testAccCheckInstanceDestroy,
275285
Steps: []resource.TestStep{
276286
{
277-
Config: testAccTencentCloudInstanceWithImageLogin,
287+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_PREPAY) },
288+
Config: testAccTencentCloudInstanceWithImageLogin,
278289
Check: resource.ComposeTestCheckFunc(
279290
testAccCheckTencentCloudDataSourceID(id),
280291
testAccCheckTencentCloudInstanceExists(id),
@@ -297,7 +308,8 @@ func TestAccTencentCloudInstanceWithName(t *testing.T) {
297308
CheckDestroy: testAccCheckInstanceDestroy,
298309
Steps: []resource.TestStep{
299310
{
300-
Config: testAccTencentCloudInstanceWithName(defaultInsName),
311+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
312+
Config: testAccTencentCloudInstanceWithName(defaultInsName),
301313
Check: resource.ComposeTestCheckFunc(
302314
testAccCheckTencentCloudDataSourceID(id),
303315
testAccCheckTencentCloudInstanceExists(id),
@@ -306,7 +318,8 @@ func TestAccTencentCloudInstanceWithName(t *testing.T) {
306318
),
307319
},
308320
{
309-
Config: testAccTencentCloudInstanceWithName(defaultInsNameUpdate),
321+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
322+
Config: testAccTencentCloudInstanceWithName(defaultInsNameUpdate),
310323
Check: resource.ComposeTestCheckFunc(
311324
testAccCheckTencentCloudDataSourceID(id),
312325
testAccCheckTencentCloudInstanceExists(id),
@@ -329,7 +342,8 @@ func TestAccTencentCloudInstanceWithHostname(t *testing.T) {
329342
CheckDestroy: testAccCheckInstanceDestroy,
330343
Steps: []resource.TestStep{
331344
{
332-
Config: testAccTencentCloudInstanceWithHostname,
345+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
346+
Config: testAccTencentCloudInstanceWithHostname,
333347
Check: resource.ComposeTestCheckFunc(
334348
testAccCheckTencentCloudDataSourceID(id),
335349
testAccCheckTencentCloudInstanceExists(id),
@@ -356,7 +370,8 @@ func TestAccTencentCloudInstanceWithSecurityGroup(t *testing.T) {
356370
CheckDestroy: testAccCheckInstanceDestroy,
357371
Steps: []resource.TestStep{
358372
{
359-
Config: testAccTencentCloudInstanceWithSecurityGroup(`[tencentcloud_security_group.foo.id]`),
373+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
374+
Config: testAccTencentCloudInstanceWithSecurityGroup(`[tencentcloud_security_group.foo.id]`),
360375
Check: resource.ComposeTestCheckFunc(
361376
testAccCheckTencentCloudDataSourceID(instanceId),
362377
testAccCheckTencentCloudInstanceExists(instanceId),
@@ -370,6 +385,7 @@ func TestAccTencentCloudInstanceWithSecurityGroup(t *testing.T) {
370385
),
371386
},
372387
{
388+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
373389
Config: testAccTencentCloudInstanceWithSecurityGroup(`[
374390
tencentcloud_security_group.foo.id,
375391
tencentcloud_security_group.bar.id
@@ -401,6 +417,7 @@ func TestAccTencentCloudInstanceWithTags(t *testing.T) {
401417
CheckDestroy: testAccCheckInstanceDestroy,
402418
Steps: []resource.TestStep{
403419
{
420+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
404421
Config: testAccTencentCloudInstanceWithTags(`{
405422
"hello" = "world"
406423
"happy" = "hour"
@@ -414,6 +431,7 @@ func TestAccTencentCloudInstanceWithTags(t *testing.T) {
414431
),
415432
},
416433
{
434+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
417435
Config: testAccTencentCloudInstanceWithTags(`{
418436
"hello" = "hello"
419437
}`),
@@ -439,7 +457,8 @@ func TestAccTencentCloudInstanceWithPlacementGroup(t *testing.T) {
439457
CheckDestroy: testAccCheckInstanceDestroy,
440458
Steps: []resource.TestStep{
441459
{
442-
Config: testAccTencentCloudInstanceWithPlacementGroup,
460+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
461+
Config: testAccTencentCloudInstanceWithPlacementGroup,
443462
Check: resource.ComposeTestCheckFunc(
444463
testAccCheckTencentCloudInstanceExists(id),
445464
resource.TestCheckResourceAttr(id, "instance_status", "RUNNING"),
@@ -461,7 +480,8 @@ func TestAccTencentCloudInstanceWithSpotpaid(t *testing.T) {
461480
CheckDestroy: testAccCheckInstanceDestroy,
462481
Steps: []resource.TestStep{
463482
{
464-
Config: testAccTencentCloudInstanceWithSpotpaid,
483+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_COMMON) },
484+
Config: testAccTencentCloudInstanceWithSpotpaid,
465485
Check: resource.ComposeTestCheckFunc(
466486
testAccCheckTencentCloudDataSourceID(id),
467487
testAccCheckTencentCloudInstanceExists(id),
@@ -473,25 +493,26 @@ func TestAccTencentCloudInstanceWithSpotpaid(t *testing.T) {
473493
}
474494

475495
func TestAccTencentCloudInstancePostpaidToPrepaid(t *testing.T) {
476-
t.Parallel()
477496

478497
id := "tencentcloud_instance.foo"
479498
resource.Test(t, resource.TestCase{
480-
PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) },
499+
PreCheck: func() { testAccPreCheck(t) },
481500
IDRefreshName: id,
482501
Providers: testAccProviders,
483502
CheckDestroy: testAccCheckInstanceDestroy,
484503
Steps: []resource.TestStep{
485504
{
486-
Config: testAccTencentCloudInstancePostPaid,
505+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_PREPAY) },
506+
Config: testAccTencentCloudInstancePostPaid,
487507
Check: resource.ComposeTestCheckFunc(
488508
testAccCheckTencentCloudDataSourceID(id),
489509
testAccCheckTencentCloudInstanceExists(id),
490510
resource.TestCheckResourceAttr(id, "instance_status", "RUNNING"),
491511
),
492512
},
493513
{
494-
Config: testAccTencentCloudInstanceBasicToPrepaid,
514+
PreConfig: func() { testAccStepPreConfigSetTempAKSK(t, ACCOUNT_TYPE_PREPAY) },
515+
Config: testAccTencentCloudInstanceBasicToPrepaid,
495516
Check: resource.ComposeTestCheckFunc(
496517
testAccCheckTencentCloudDataSourceID(id),
497518
testAccCheckTencentCloudInstanceExists(id),
@@ -591,8 +612,8 @@ data "tencentcloud_instance_types" "default" {
591612
values = ["S1"]
592613
}
593614
594-
cpu_core_count = 1
595-
memory_size = 1
615+
cpu_core_count = 2
616+
memory_size = 2
596617
}
597618
598619
resource "tencentcloud_instance" "foo" {
@@ -601,6 +622,7 @@ resource "tencentcloud_instance" "foo" {
601622
image_id = "` + defaultTkeOSImageId + `"
602623
instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type
603624
system_disk_type = "CLOUD_PREMIUM"
625+
force_delete = true
604626
}
605627
`
606628

@@ -611,8 +633,8 @@ data "tencentcloud_instance_types" "default" {
611633
values = ["S1"]
612634
}
613635
614-
cpu_core_count = 1
615-
memory_size = 1
636+
cpu_core_count = 2
637+
memory_size = 2
616638
}
617639
618640
resource "tencentcloud_instance" "foo" {
@@ -624,6 +646,7 @@ resource "tencentcloud_instance" "foo" {
624646
instance_charge_type = "PREPAID"
625647
instance_charge_type_prepaid_period = 1
626648
instance_charge_type_prepaid_renew_flag = "NOTIFY_AND_MANUAL_RENEW"
649+
force_delete = true
627650
}
628651
`
629652

@@ -796,7 +819,6 @@ resource "tencentcloud_instance" "foo" {
796819
const testAccTencentCloudInstanceWithImageLogin = defaultInstanceVariable + `
797820
data "tencentcloud_images" "zoo" {
798821
image_type = ["PRIVATE_IMAGE"]
799-
os_name = "centos"
800822
}
801823
resource "tencentcloud_instance" "foo" {
802824
instance_name = var.instance_name

0 commit comments

Comments
 (0)