feat: SQL between/hostvar-key alignment, class-condition parsing, gcov merge across scenario runs
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
program_id: JIN05UPD
|
||||
db_type: SQLite
|
||||
db_name: JIN.db
|
||||
|
||||
db_tables:
|
||||
- name: EMPLOYEE
|
||||
columns:
|
||||
- name: EMP_ID
|
||||
type: CHAR(8)
|
||||
primary_key: true
|
||||
- name: KANA_SEI
|
||||
type: VARCHAR(20)
|
||||
- name: KANA_MEI
|
||||
type: VARCHAR(20)
|
||||
- name: KANJI_NAME
|
||||
type: VARCHAR(40)
|
||||
- name: SUB_CODE
|
||||
type: CHAR(4)
|
||||
- name: BIRTH_DATE
|
||||
type: CHAR(8)
|
||||
- name: DEPT_CODE
|
||||
type: CHAR(4)
|
||||
- name: ENTRY_DATE
|
||||
type: CHAR(8)
|
||||
- name: STATUS
|
||||
type: CHAR(1)
|
||||
|
||||
runs:
|
||||
- id: normal
|
||||
|
||||
subprograms:
|
||||
- SUB01DAT
|
||||
- SUB02MSG
|
||||
- SUB03END
|
||||
@@ -23,6 +23,22 @@ db_tables:
|
||||
- name: STATUS
|
||||
type: CHAR(1)
|
||||
|
||||
command_line: YEARMONTH=202607
|
||||
|
||||
runs:
|
||||
- id: normal
|
||||
- id: no_parm
|
||||
command_line: ""
|
||||
- id: feb
|
||||
command_line: YEARMONTH=202602
|
||||
- id: feb_leap
|
||||
command_line: YEARMONTH=202402
|
||||
- id: invalid_month
|
||||
command_line: YEARMONTH=202613
|
||||
- id: empty_emp
|
||||
command_line: YEARMONTH=202607
|
||||
delete_all_rows: true
|
||||
|
||||
subprograms:
|
||||
- SUB02MSG
|
||||
- SUB03END
|
||||
|
||||
@@ -77,3 +77,22 @@ runs:
|
||||
include_invalid_period: true
|
||||
modes: ["NORMAL", "RESET"]
|
||||
inject_duplicate_pk: true
|
||||
|
||||
- id: sql_delete_error
|
||||
# RESET 時 DELETE MONTHLY_ABSENCE の SQL エラー(テーブル削除)→ 9100DBERRSOR
|
||||
sysin:
|
||||
period: "202607"
|
||||
include_invalid_period: true
|
||||
modes: ["RESET"]
|
||||
inject_duplicate_pk: false
|
||||
drop_tables: [MONTHLY_ABSENCE]
|
||||
|
||||
- id: sql_select_error
|
||||
# UPSERT 前 SELECT COUNT 的 SQL エラー(テーブル削除)→ SELECT COUNT failed 分岐
|
||||
sysin:
|
||||
period: "202607"
|
||||
include_invalid_period: true
|
||||
modes: ["NORMAL"]
|
||||
final_mode: "NORMAL"
|
||||
inject_duplicate_pk: false
|
||||
drop_tables: [MONTHLY_ABSENCE]
|
||||
|
||||
@@ -49,6 +49,30 @@ db_tables:
|
||||
- name: UPDATED_AT
|
||||
type: TIMESTAMP
|
||||
|
||||
runs:
|
||||
- id: FULL
|
||||
command_line: "YEARMONTH=202607,MODE=FULL"
|
||||
seed_extra_rows:
|
||||
DAILY_RECORDS: 100
|
||||
- id: SHORT
|
||||
command_line: "YEARMONTH=202607,MODE=SHORT"
|
||||
|
||||
# Fix A: PARM 组合 + 空结果集场景
|
||||
- id: missing_mode
|
||||
# WS-COMMA-CNT < 1 → 'WARNING: Missing MODE'(MODE 默认 FULL)
|
||||
command_line: "YEARMONTH=202607"
|
||||
- id: reordered_parm
|
||||
# KEY1=MODE(VALUE1→WS-MODE)+ KEY2=YEARMONTH(VALUE2→WS-YEARMONTH)
|
||||
command_line: "MODE=FULL,YEARMONTH=202607"
|
||||
- id: missing_ym
|
||||
# YEARMONTH 未指定 → SPACE → ABEND(SUB03END)
|
||||
command_line: "MODE=FULL"
|
||||
- id: empty_daily
|
||||
# 首 FETCH EOF:删除 DAILY_RECORDS 表 → 光标 OPEN/FETCH 失败 → SQLCODE≠0 → WS-DAILY-EOF
|
||||
# (delete_all_rows 空表时 gixsql 首次 FETCH 返回 SQLCODE=0,无法触发 EOF)
|
||||
command_line: "YEARMONTH=202607,MODE=FULL"
|
||||
drop_tables: [DAILY_RECORDS]
|
||||
|
||||
subprograms:
|
||||
- SUB02MSG
|
||||
- SUB03END
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
program_id: KYU02REG
|
||||
db_type: SQLite
|
||||
db_name: SALARY.db
|
||||
|
||||
db_tables:
|
||||
- name: EMP_MASTER
|
||||
columns:
|
||||
- name: EMP_ID
|
||||
type: CHAR(8)
|
||||
primary_key: true
|
||||
- name: EMP_NAME
|
||||
type: VARCHAR(40)
|
||||
- name: DEPT_CODE
|
||||
type: CHAR(2)
|
||||
- name: REGION_CODE
|
||||
type: CHAR(2)
|
||||
- name: CATEGORY_CODE
|
||||
type: CHAR(3)
|
||||
- name: BASE_SALARY
|
||||
type: DECIMAL(9,0)
|
||||
- name: HOURLY_RATE
|
||||
type: DECIMAL(7,0)
|
||||
- name: DEPENDENT_COUNT
|
||||
type: SMALLINT
|
||||
- name: STATUS
|
||||
type: CHAR(1)
|
||||
- name: UPDATED_AT
|
||||
type: TIMESTAMP
|
||||
|
||||
subprograms:
|
||||
- SUB02MSG
|
||||
- SUB03END
|
||||
@@ -0,0 +1,50 @@
|
||||
program_id: KYU04CAL
|
||||
db_type: SQLite
|
||||
db_name: SALARY.db
|
||||
|
||||
db_tables:
|
||||
- name: EMP_MASTER
|
||||
columns:
|
||||
- name: EMP_ID
|
||||
type: CHAR(8)
|
||||
primary_key: true
|
||||
- name: EMP_NAME
|
||||
type: VARCHAR(40)
|
||||
- name: DEPT_CODE
|
||||
type: CHAR(2)
|
||||
- name: REGION_CODE
|
||||
type: CHAR(2)
|
||||
- name: CATEGORY_CODE
|
||||
type: CHAR(3)
|
||||
- name: BASE_SALARY
|
||||
type: DECIMAL(9,0)
|
||||
- name: HOURLY_RATE
|
||||
type: DECIMAL(7,0)
|
||||
- name: DEPENDENT_COUNT
|
||||
type: SMALLINT
|
||||
- name: STATUS
|
||||
type: CHAR(1)
|
||||
- name: UPDATED_AT
|
||||
type: TIMESTAMP
|
||||
|
||||
- name: OVT_MONTHLY
|
||||
columns:
|
||||
- name: EMP_ID
|
||||
type: CHAR(8)
|
||||
primary_key: true
|
||||
- name: YEAR_MONTH
|
||||
type: CHAR(6)
|
||||
primary_key: true
|
||||
- name: OVT_TYPE
|
||||
type: CHAR(1)
|
||||
- name: OVT_HOURS
|
||||
type: DECIMAL(4,1)
|
||||
- name: OVT_COUNT
|
||||
type: DECIMAL(9)
|
||||
- name: UPDATED_AT
|
||||
type: TIMESTAMP
|
||||
|
||||
subprograms:
|
||||
- SUB01DAT
|
||||
- SUB02MSG
|
||||
- SUB03END
|
||||
@@ -0,0 +1,36 @@
|
||||
program_id: KYU05DED
|
||||
db_type: SQLite
|
||||
db_name: SALARY.db
|
||||
|
||||
db_tables:
|
||||
- name: TAX_TABLE
|
||||
columns:
|
||||
- name: TAX_FROM
|
||||
type: DECIMAL(9,0)
|
||||
primary_key: true
|
||||
- name: TAX_TO
|
||||
type: DECIMAL(9,0)
|
||||
primary_key: true
|
||||
- name: TAX_RATE
|
||||
type: DECIMAL(5,4)
|
||||
- name: DEDUCTION
|
||||
type: DECIMAL(9,0)
|
||||
|
||||
- name: INSURANCE_TABLE
|
||||
columns:
|
||||
- name: INS_INCOME_FROM
|
||||
type: DECIMAL(9,0)
|
||||
primary_key: true
|
||||
- name: INS_INCOME_TO
|
||||
type: DECIMAL(9,0)
|
||||
primary_key: true
|
||||
- name: INS_HEALTH_RATE
|
||||
type: DECIMAL(7,6)
|
||||
- name: INS_PENSION_RATE
|
||||
type: DECIMAL(7,6)
|
||||
- name: UPDATED_AT
|
||||
type: TIMESTAMP
|
||||
|
||||
subprograms:
|
||||
- SUB02MSG
|
||||
- SUB03END
|
||||
@@ -0,0 +1,29 @@
|
||||
program_id: KYU06UPD
|
||||
db_type: SQLite
|
||||
db_name: SALARY.db
|
||||
|
||||
db_tables:
|
||||
- name: SALARY_RESULTS
|
||||
columns:
|
||||
- name: EMP_ID
|
||||
type: CHAR(8)
|
||||
primary_key: true
|
||||
- name: YEAR_MONTH
|
||||
type: CHAR(6)
|
||||
primary_key: true
|
||||
- name: GROSS_PAYMENT
|
||||
type: DECIMAL(9,0)
|
||||
- name: INCOME_TAX
|
||||
type: DECIMAL(9,0)
|
||||
- name: INSURANCE
|
||||
type: DECIMAL(9,0)
|
||||
- name: RESIDENT_TAX
|
||||
type: DECIMAL(9,0)
|
||||
- name: NET_PAYMENT
|
||||
type: DECIMAL(9,0)
|
||||
- name: UPDATED_AT
|
||||
type: TIMESTAMP
|
||||
|
||||
subprograms:
|
||||
- SUB02MSG
|
||||
- SUB03END
|
||||
@@ -0,0 +1,45 @@
|
||||
program_id: SHA02MNC
|
||||
db_type: SQLite
|
||||
db_name: INSURANCEDB.db
|
||||
|
||||
db_tables:
|
||||
- name: INSURANCE_RATES
|
||||
columns:
|
||||
- name: GRADE_CODE
|
||||
type: CHAR(2)
|
||||
primary_key: true
|
||||
- name: MONTHLY_FROM
|
||||
type: DECIMAL(9,0)
|
||||
- name: MONTHLY_TO
|
||||
type: DECIMAL(9,0)
|
||||
- name: HEALTH_RATE
|
||||
type: DECIMAL(7,6)
|
||||
- name: PENSION_RATE
|
||||
type: DECIMAL(7,6)
|
||||
- name: EFFECTIVE_FROM
|
||||
type: CHAR(6)
|
||||
- name: EFFECTIVE_TO
|
||||
type: CHAR(6)
|
||||
|
||||
- name: EMP_MASTER
|
||||
columns:
|
||||
- name: EMP_ID
|
||||
type: CHAR(8)
|
||||
primary_key: true
|
||||
- name: EMP_NAME
|
||||
type: VARCHAR(40)
|
||||
- name: DEPT_CODE
|
||||
type: CHAR(2)
|
||||
- name: BASE_SALARY
|
||||
type: DECIMAL(9,0)
|
||||
|
||||
runs:
|
||||
- id: normal
|
||||
- id: emp_open_fail
|
||||
drop_tables: [EMP_MASTER]
|
||||
inject_duplicate_pk: false
|
||||
|
||||
subprograms:
|
||||
- SUB01DAT
|
||||
- SUB02MSG
|
||||
- SUB04CHK
|
||||
@@ -0,0 +1,32 @@
|
||||
program_id: SHA03MNP
|
||||
db_type: SQLite
|
||||
db_name: INSURANCEDB.db
|
||||
|
||||
db_tables:
|
||||
- name: INSURANCE_RATES
|
||||
columns:
|
||||
- name: GRADE_CODE
|
||||
type: CHAR(2)
|
||||
primary_key: true
|
||||
- name: MONTHLY_FROM
|
||||
type: DECIMAL(9,0)
|
||||
- name: MONTHLY_TO
|
||||
type: DECIMAL(9,0)
|
||||
- name: HEALTH_RATE
|
||||
type: DECIMAL(7,6)
|
||||
- name: PENSION_RATE
|
||||
type: DECIMAL(7,6)
|
||||
- name: EFFECTIVE_FROM
|
||||
type: CHAR(6)
|
||||
- name: EFFECTIVE_TO
|
||||
type: CHAR(6)
|
||||
|
||||
runs:
|
||||
- id: normal
|
||||
- id: rates_open_fail
|
||||
drop_tables: [INSURANCE_RATES]
|
||||
inject_duplicate_pk: false
|
||||
|
||||
subprograms:
|
||||
- SUB01DAT
|
||||
- SUB02MSG
|
||||
@@ -0,0 +1,19 @@
|
||||
program_id: SHA04TWO
|
||||
db_type: SQLite
|
||||
db_name: INSURANCEDB.db
|
||||
|
||||
db_tables:
|
||||
- name: INSURED_MASTER
|
||||
columns:
|
||||
- name: EMP_ID
|
||||
type: CHAR(8)
|
||||
primary_key: true
|
||||
- name: INSURED_NO
|
||||
type: CHAR(10)
|
||||
primary_key: true
|
||||
- name: STATUS
|
||||
type: CHAR(1)
|
||||
|
||||
subprograms:
|
||||
- SUB01DAT
|
||||
- SUB02MSG
|
||||
@@ -0,0 +1,30 @@
|
||||
program_id: SHA06TWM
|
||||
db_type: SQLite
|
||||
db_name: INSURANCEDB.db
|
||||
|
||||
db_tables:
|
||||
- name: INSURANCE_RATES
|
||||
columns:
|
||||
- name: GRADE_CODE
|
||||
type: CHAR(2)
|
||||
primary_key: true
|
||||
- name: HEALTH_RATE
|
||||
type: DECIMAL(7,0)
|
||||
- name: PENSION_RATE
|
||||
type: DECIMAL(7,0)
|
||||
|
||||
- name: EMP_MASTER
|
||||
columns:
|
||||
- name: EMP_ID
|
||||
type: CHAR(8)
|
||||
primary_key: true
|
||||
- name: BIRTH_DATE
|
||||
type: CHAR(8)
|
||||
- name: DEPENDENT_COUNT
|
||||
type: SMALLINT
|
||||
- name: REGION_CODE
|
||||
type: CHAR(2)
|
||||
|
||||
subprograms:
|
||||
- SUB01DAT
|
||||
- SUB02MSG
|
||||
@@ -0,0 +1,34 @@
|
||||
program_id: SHA07KBR
|
||||
db_type: SQLite
|
||||
db_name: INSURANCEDB.db
|
||||
|
||||
db_tables:
|
||||
- name: QUALIFICATION_CHANGES
|
||||
columns:
|
||||
- name: CHG_ID
|
||||
type: DECIMAL(9,0)
|
||||
primary_key: true
|
||||
- name: EMP_ID
|
||||
type: CHAR(8)
|
||||
- name: CHG_DATE
|
||||
type: CHAR(8)
|
||||
- name: CHG_TYPE
|
||||
type: CHAR(2)
|
||||
- name: INSURER_CODE
|
||||
type: CHAR(4)
|
||||
- name: PREV_INSURER
|
||||
type: CHAR(4)
|
||||
- name: REASON
|
||||
type: VARCHAR(100)
|
||||
|
||||
- name: EMP_MASTER
|
||||
columns:
|
||||
- name: EMP_ID
|
||||
type: CHAR(8)
|
||||
primary_key: true
|
||||
- name: EMP_NAME
|
||||
type: VARCHAR(40)
|
||||
|
||||
subprograms:
|
||||
- SUB01DAT
|
||||
- SUB02MSG
|
||||
Reference in New Issue
Block a user