Skip to content

Commit e207562

Browse files
Xiaoran Wangreshke
authored andcommitted
Fix test_primary_failure test case (apache#303)
* subprocess.check_output of python3, needs encoding * Add @PLPYTHON_LANG_STR@ in the test_primary_failure.in.sql
1 parent 808c049 commit e207562

4 files changed

Lines changed: 22 additions & 56 deletions

File tree

gpcontrib/diskquota/tests/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ RegressTarget_Add(regress
2626
EXPECTED_DIR ${regress_expected_DIR}
2727
RESULTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/regress/results
2828
DATA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data
29-
SCHEDULE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/regress/diskquota_schedule${EXPECTED_DIR_SUFFIX}
29+
SCHEDULE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/regress/diskquota_schedule
3030
EXCLUDE_FAULT_INJECT_TEST ${exclude_fault_injector}
3131
REGRESS_OPTS
3232
--load-extension=gp_inject_fault

gpcontrib/diskquota/tests/regress/diskquota_schedule7

Lines changed: 0 additions & 46 deletions
This file was deleted.

gpcontrib/diskquota/tests/regress/expected/test_primary_failure.out

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,21 @@ returns text as $$
2121

2222
cmd = 'pg_ctl -l postmaster.log -D %s ' % datadir
2323
cmd = cmd + '-W -m %s %s' % (command_mode, command)
24+
if 'plpython2u' == 'plpython2u':
25+
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).replace('.', '')
26+
else:
27+
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True, encoding='utf8').replace('.', '')
2428

25-
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).replace('.', '')
26-
$$ language plpythonu;
29+
$$ language plpython2u;
2730
create or replace function pg_recoverseg(datadir text, command text)
2831
returns text as $$
2932
import subprocess
3033
cmd = 'gprecoverseg -%s -d %s; exit 0; ' % (command, datadir)
31-
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).replace('.', '')
32-
$$ language plpythonu;
34+
if 'plpython2u' == 'plpython2u':
35+
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).replace('.', '')
36+
else:
37+
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True, encoding='utf8').replace('.', '')
38+
$$ language plpython2u;
3339
CREATE TABLE a(i int) DISTRIBUTED BY (i);
3440
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'i' as the Greenplum Database data distribution key for this table.
3541
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.

gpcontrib/diskquota/tests/regress/sql/test_primary_failure.sql renamed to gpcontrib/diskquota/tests/regress/sql/test_primary_failure.in.sql

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CREATE SCHEMA ftsr;
22
SELECT diskquota.set_schema_quota('ftsr', '1 MB');
33
SET search_path TO ftsr;
4-
create or replace language plpythonu;
4+
create or replace language @PLPYTHON_LANG_STR@;
55
--
66
-- pg_ctl:
77
-- datadir: data directory of process to target with `pg_ctl`
@@ -16,16 +16,22 @@ returns text as $$
1616

1717
cmd = 'pg_ctl -l postmaster.log -D %s ' % datadir
1818
cmd = cmd + '-W -m %s %s' % (command_mode, command)
19+
if '@PLPYTHON_LANG_STR@' == 'plpython2u':
20+
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).replace('.', '')
21+
else:
22+
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True, encoding='utf8').replace('.', '')
1923

20-
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).replace('.', '')
21-
$$ language plpythonu;
24+
$$ language @PLPYTHON_LANG_STR@;
2225

2326
create or replace function pg_recoverseg(datadir text, command text)
2427
returns text as $$
2528
import subprocess
2629
cmd = 'gprecoverseg -%s -d %s; exit 0; ' % (command, datadir)
27-
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).replace('.', '')
28-
$$ language plpythonu;
30+
if '@PLPYTHON_LANG_STR@' == 'plpython2u':
31+
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).replace('.', '')
32+
else:
33+
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True, encoding='utf8').replace('.', '')
34+
$$ language @PLPYTHON_LANG_STR@;
2935

3036
CREATE TABLE a(i int) DISTRIBUTED BY (i);
3137
INSERT INTO a SELECT generate_series(1,100);

0 commit comments

Comments
 (0)