summaryrefslogtreecommitdiffstats
path: root/src/interfaces/ecpg/test/meson.build
blob: 8fc352b0145fa8753eadd544c01e48eaf8384e85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# Copyright (c) 2022-2023, PostgreSQL Global Development Group

# can't run ecpg to build test dependencies, at least not without an emulator
if meson.is_cross_build()
  subdir_done()
endif

pg_regress_ecpg_sources = pg_regress_c + files(
  'pg_regress_ecpg.c',
)

if host_system == 'windows'
  pg_regress_ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
    '--NAME', 'pg_regress_ecpg',])
endif

pg_regress_ecpg = executable('pg_regress_ecpg',
  pg_regress_ecpg_sources,
  c_args: pg_regress_cflags,
  include_directories: [pg_regress_inc, include_directories('.')],
  dependencies: [frontend_code],
  kwargs: default_bin_args + {
    'install': false
  },
)
testprep_targets += pg_regress_ecpg

# create .c files and executables from .pgc files
ecpg_test_exec_kw = {
  'dependencies': [frontend_code, libpq],
  'include_directories': [ecpg_inc],
  'link_with': [ecpglib_so, ecpg_compat_so, ecpg_pgtypes_so],
  'build_by_default': false,
  'install': false,
}

ecpg_preproc_kw = {
  'output': '@BASENAME@.c',
  'install': false,
  'build_by_default': false,
}

ecpg_preproc_test_command_start = [
  ecpg_exe,
  '--regression',
  '-I@CURRENT_SOURCE_DIR@',
  '-I@SOURCE_ROOT@' + '/src/interfaces/ecpg/include/',
  '-o', '@OUTPUT@',
]
ecpg_preproc_test_command_end = [
  '@INPUT@'
]

ecpg_test_dependencies = []

subdir('compat_informix')
subdir('compat_oracle')
subdir('connect')
subdir('pgtypeslib')
subdir('preproc')
subdir('sql')
subdir('thread')

testprep_targets += ecpg_test_dependencies

ecpg_test_files = files(
  'ecpg_schedule',
)

ecpg_regress_args = [
  '--dbname=ecpg1_regression,ecpg2_regression',
  '--create-role=regress_ecpg_user1,regress_ecpg_user2',
]

tests += {
  'name': 'ecpg',
  'sd': meson.current_source_dir(),
  'bd': meson.current_build_dir(),
  'ecpg': {
    'expecteddir': meson.current_source_dir(),
    'inputdir': meson.current_build_dir(),
    'schedule': ecpg_test_files,
    'sql': [
      'sql/twophase',
    ],
    'test_kwargs': {
      'depends': ecpg_test_dependencies,
    },
    'dbname': 'ecpg1_regression,ecpg2_regression',
    'regress_args': ecpg_regress_args,
  },
}