jell-utils 0.0.17 โ 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +16 -0
- package/.releaserc.json +115 -0
- package/CLAUDE.md +139 -0
- package/DEPLOYMENT.md +351 -0
- package/README.md +2 -0
- package/TEST_RESULTS.md +153 -0
- package/TEST_SIMULATION.md +27 -0
- package/coverage/clover.xml +300 -0
- package/coverage/coverage-final.json +2 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +116 -0
- package/coverage/lcov-report/index.js.html +2059 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov.info +689 -0
- package/lib/index.d.ts +142 -38
- package/lib/index.js +497 -116
- package/package.json +45 -16
package/TEST_RESULTS.md
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# ๐งช CI/CD Pipeline Test Results
|
|
2
|
+
|
|
3
|
+
## ๐ Test Summary
|
|
4
|
+
|
|
5
|
+
**์ ์ฒด ํ
์คํธ ์๋ฃ**: 2024-01-XX
|
|
6
|
+
**ํ
์คํธ ํ๊ฒฝ**: ๋ก์ปฌ + GitHub Actions ์๋ฎฌ๋ ์ด์
|
|
7
|
+
**์์ ์ฑ**: โ
์ค์ ๋ฐฐํฌ ๋ฐฉ์ง๋จ (NPM_TOKEN ๋ฏธ์ค์ )
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## โ
์ฑ๊ณตํ ํ
์คํธ๋ค
|
|
12
|
+
|
|
13
|
+
### 1. **Semantic Release ์ค์ ** โ
|
|
14
|
+
- **์ํ**: ์์ ์๋
|
|
15
|
+
- **๊ฒ์ฆ ๊ฒฐ๊ณผ**:
|
|
16
|
+
- ๋ชจ๋ ํ๋ฌ๊ทธ์ธ ๋ก๋๋จ
|
|
17
|
+
- Conventional commit ์ธ์๋จ
|
|
18
|
+
- BREAKING CHANGE โ Major ๋ฒ์ ์ฆ๊ฐ ์์ (0.0.18 โ 1.0.0)
|
|
19
|
+
- ๋ธ๋์น ํํฐ๋ง ์ ์ ์๋ (reboot ๋ธ๋์น์์ ๋ฐฐํฌ ์ฐจ๋จ๋จ)
|
|
20
|
+
|
|
21
|
+
### 2. **Git Hooks (Husky)** โ
|
|
22
|
+
- **์ํ**: ์์ ์๋
|
|
23
|
+
- **๊ฒ์ฆ ๊ฒฐ๊ณผ**:
|
|
24
|
+
- Pre-commit: ๋ฆฐํธ ๋ฐ ํฌ๋งทํ
์๋ ์คํ โ
|
|
25
|
+
- Commit-msg: Conventional commits ๊ฒ์ฆ โ
|
|
26
|
+
- Lint-staged: ๋ณ๊ฒฝ๋ ํ์ผ๋ง ์ฒ๋ฆฌ โ
|
|
27
|
+
|
|
28
|
+
### 3. **Build & Test Pipeline** โ
|
|
29
|
+
- **์ํ**: ์์ ์๋
|
|
30
|
+
- **๊ฒ์ฆ ๊ฒฐ๊ณผ**:
|
|
31
|
+
- TypeScript ๋น๋ ์ฑ๊ณต โ
|
|
32
|
+
- Jest ํ
์คํธ ํต๊ณผ โ
(5/5 tests)
|
|
33
|
+
- ESLint ํต๊ณผ โ
|
|
34
|
+
- ์์กด์ฑ ์ค์น ์ฑ๊ณต โ
|
|
35
|
+
|
|
36
|
+
### 4. **GitHub Actions ์ํฌํ๋ก์ฐ** โ
|
|
37
|
+
- **์ํ**: ๋ฌธ๋ฒ ๊ฒ์ฆ ์๋ฃ
|
|
38
|
+
- **ํ์ผ ๊ตฌ์กฐ**:
|
|
39
|
+
- `ci.yml`: Multi-Node.js, Cross-platform ํ
์คํธ
|
|
40
|
+
- `release.yml`: Semantic release + NPM ๋ฐฐํฌ
|
|
41
|
+
- ์ํฌํ๋ก์ฐ ์ฐ๊ฒฐ: CI ์ฑ๊ณต โ Release ์คํ
|
|
42
|
+
|
|
43
|
+
### 5. **Conventional Commits** โ
|
|
44
|
+
- **ํ
์คํธ ์ปค๋ฐ**: `feat: implement modern CI/CD pipeline`
|
|
45
|
+
- **BREAKING CHANGE**: ํฌํจ๋จ
|
|
46
|
+
- **์์ ๋ฒ์ **: 0.0.18 โ 1.0.0
|
|
47
|
+
|
|
48
|
+
### 6. **์์ ์ฑ ๊ฒ์ฆ** โ
|
|
49
|
+
- NPM_TOKEN ๋ฏธ์ค์ ์ผ๋ก ์ค์ ๋ฐฐํฌ ์ฐจ๋จ ํ์ธ
|
|
50
|
+
- ๋ธ๋์น ํํฐ๋ง์ผ๋ก ํ
์คํธ ๋ธ๋์น์์ ๋ฐฐํฌ ์ฐจ๋จ ํ์ธ
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## โ ๏ธ ํ
์คํธ ์ ํ์ฌํญ
|
|
55
|
+
|
|
56
|
+
### 1. **GitHub Push ๊ถํ**
|
|
57
|
+
- **์ํ**: ๊ถํ ์์ (์์๋จ)
|
|
58
|
+
- **์์ธ**: `hgyoo-azflow` โ `jellive/jell-utils.js` ๊ถํ ์์
|
|
59
|
+
- **ํด๊ฒฐ**: ํ๋ก์ ํธ ์์ ์๊ฐ ์ง์ push ํ์
|
|
60
|
+
|
|
61
|
+
### 2. **์ค์ NPM ๋ฐฐํฌ**
|
|
62
|
+
- **์ํ**: ํ
์คํธ ์ํจ (์๋์ )
|
|
63
|
+
- **์์ธ**: NPM_TOKEN ๋ฏธ์ค์
|
|
64
|
+
- **ํด๊ฒฐ**: Repository secrets์ NPM_TOKEN ์ค์ ํ ํ
์คํธ
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## ๐ ์ค์ ์ด์์ ์ํ ๋ค์ ๋จ๊ณ
|
|
69
|
+
|
|
70
|
+
### **Step 1: Repository Secrets ์ค์ **
|
|
71
|
+
GitHub Repository โ Settings โ Secrets and variables โ Actions:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# NPM ๋ฐฐํฌ ํ ํฐ (ํ์)
|
|
75
|
+
NPM_TOKEN=npm_xxxxxxxxxxxxxxxx
|
|
76
|
+
|
|
77
|
+
# ์ ํ์ฌํญ
|
|
78
|
+
SLACK_WEBHOOK_URL=https://hooks.slack.com/...
|
|
79
|
+
CODECOV_TOKEN=xxxxxxxx-xxxx-xxxx...
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### **Step 2: Branch Protection Rules**
|
|
83
|
+
Repository โ Settings โ Branches โ Add rule:
|
|
84
|
+
- Branch name pattern: `main`
|
|
85
|
+
- โ
Require pull request before merging
|
|
86
|
+
- โ
Require status checks to pass
|
|
87
|
+
|
|
88
|
+
### **Step 3: ์ค์ ๋ฐฐํฌ ํ
์คํธ**
|
|
89
|
+
```bash
|
|
90
|
+
# 1. ์์ ๋ณ๊ฒฝ์ฌํญ ์ปค๋ฐ
|
|
91
|
+
git checkout -b test/ci-cd-validation
|
|
92
|
+
echo "# CI/CD Test" > TEST.md
|
|
93
|
+
git add TEST.md
|
|
94
|
+
git commit -m "docs: add CI/CD validation test"
|
|
95
|
+
|
|
96
|
+
# 2. PR ์์ฑ ๋ฐ merge
|
|
97
|
+
git push origin test/ci-cd-validation
|
|
98
|
+
# GitHub์์ PR ์์ฑ โ CI ์คํ ํ์ธ โ Merge
|
|
99
|
+
|
|
100
|
+
# 3. ์๋ ๋ฐฐํฌ ํ์ธ
|
|
101
|
+
# GitHub Actions์์ release ์ํฌํ๋ก์ฐ ์คํ
|
|
102
|
+
# NPM์ ์ ๋ฒ์ ์๋ ๋ฐฐํฌ
|
|
103
|
+
# GitHub Release ์๋ ์์ฑ
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## ๐ฏ ์์ ๊ฒฐ๊ณผ
|
|
109
|
+
|
|
110
|
+
### **์ค์ ๋ฐฐํฌ์ workflow:**
|
|
111
|
+
1. **CI Pipeline**: โ
๋ค์ค ํ๊ฒฝ ํ
์คํธ (Ubuntu/Windows/macOS, Node 18/20/21)
|
|
112
|
+
2. **Security Scan**: โ
์์กด์ฑ ์ทจ์ฝ์ ๊ฒ์ฌ
|
|
113
|
+
3. **Semantic Analysis**: โ
์ปค๋ฐ ๋ถ์ โ ๋ฒ์ ๊ณ์ฐ (1.0.0)
|
|
114
|
+
4. **Automated Release**: โ
GitHub Release + Changelog ์์ฑ
|
|
115
|
+
5. **NPM Publish**: โ
npm registry ๋ฐฐํฌ
|
|
116
|
+
6. **Notifications**: โ
Slack ์๋ฆผ (์ค์ ์)
|
|
117
|
+
|
|
118
|
+
### **๋ฒ์ ๊ด๋ฆฌ:**
|
|
119
|
+
- **Current**: 0.0.18
|
|
120
|
+
- **Next Release**: 1.0.0 (BREAKING CHANGE ๊ฐ์ง)
|
|
121
|
+
- **Changelog**: ์๋ ์์ฑ
|
|
122
|
+
- **Git Tags**: ์๋ ์์ฑ
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## ๐ Test Checklist
|
|
127
|
+
|
|
128
|
+
- [x] Semantic Release ์ค์ ๋ฐ ๊ฒ์ฆ
|
|
129
|
+
- [x] Conventional Commits ํ์ ๊ฒ์ฆ
|
|
130
|
+
- [x] Git Hooks ์๋ ํ์ธ
|
|
131
|
+
- [x] Build Pipeline ๊ฒ์ฆ
|
|
132
|
+
- [x] GitHub Actions YAML ๋ฌธ๋ฒ ํ์ธ
|
|
133
|
+
- [x] ์์ ์ฑ ๊ฒ์ฆ (์ค์ ๋ฐฐํฌ ์ฐจ๋จ)
|
|
134
|
+
- [ ] ์ค์ GitHub Push (๊ถํ ํ์)
|
|
135
|
+
- [ ] NPM Token ์ค์ ํ ๋ฐฐํฌ ํ
์คํธ
|
|
136
|
+
- [ ] Slack ์๋ฆผ ํ
์คํธ
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## ๐ ๊ฒฐ๋ก
|
|
141
|
+
|
|
142
|
+
**โ
CI/CD ํ์ดํ๋ผ์ธ์ด ์์ ํ ์ค๋น๋์์ต๋๋ค!**
|
|
143
|
+
|
|
144
|
+
๋ชจ๋ ํต์ฌ ๊ธฐ๋ฅ๋ค์ด ๋ก์ปฌ์์ ๊ฒ์ฆ๋์์ผ๋ฉฐ, ์ค์ ๋ฐฐํฌ๋ฅผ ์ํด์๋:
|
|
145
|
+
1. GitHub Repository ์ ๊ทผ ๊ถํ ํ๋ณด
|
|
146
|
+
2. NPM_TOKEN ์ค์
|
|
147
|
+
3. Branch protection rules ์ ์ฉ
|
|
148
|
+
|
|
149
|
+
์ดํ ๋จ์ํ `main` ๋ธ๋์น์ conventional commit์ผ๋ก mergeํ๊ธฐ๋ง ํ๋ฉด **์์ ์๋ํ๋ ๋ฒ์ ๊ด๋ฆฌ + NPM ๋ฐฐํฌ**๊ฐ ์คํ๋ฉ๋๋ค.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
*ํ
์คํธ ์๋ฃ ์์ : $(date)*
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# ๐งช CI/CD Pipeline Test Simulation
|
|
2
|
+
|
|
3
|
+
## Test Environment
|
|
4
|
+
|
|
5
|
+
- Branch: reboot (safe for testing)
|
|
6
|
+
- Date: $(date)
|
|
7
|
+
- Purpose: Validate CI/CD pipeline without actual deployment
|
|
8
|
+
|
|
9
|
+
## Test Results
|
|
10
|
+
|
|
11
|
+
### โ
Configuration Validation
|
|
12
|
+
|
|
13
|
+
- Semantic Release: LOADED
|
|
14
|
+
- All Plugins: CONFIGURED
|
|
15
|
+
- Dependencies: INSTALLED
|
|
16
|
+
|
|
17
|
+
### ๐ Next Steps
|
|
18
|
+
|
|
19
|
+
1. Create test commit with conventional format
|
|
20
|
+
2. Run semantic-release dry-run
|
|
21
|
+
3. Validate version calculation
|
|
22
|
+
4. Test GitHub Actions workflow syntax
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
_This is a test file for CI/CD pipeline validation_
|
|
27
|
+
Test change
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<coverage generated="1760097376381" clover="3.2.0">
|
|
3
|
+
<project timestamp="1760097376381" name="All files">
|
|
4
|
+
<metrics statements="291" coveredstatements="241" conditionals="263" coveredconditionals="193" methods="63" coveredmethods="56" elements="617" coveredelements="490" complexity="0" loc="291" ncloc="291" packages="1" files="1" classes="1"/>
|
|
5
|
+
<file name="index.js" path="/Users/jellpd/jell-utils.js/lib/index.js">
|
|
6
|
+
<metrics statements="291" coveredstatements="241" conditionals="263" coveredconditionals="193" methods="63" coveredmethods="56"/>
|
|
7
|
+
<line num="2" count="7" type="cond" truecount="3" falsecount="0"/>
|
|
8
|
+
<line num="3" count="1" type="cond" truecount="1" falsecount="1"/>
|
|
9
|
+
<line num="4" count="0" type="stmt"/>
|
|
10
|
+
<line num="5" count="0" type="stmt"/>
|
|
11
|
+
<line num="6" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
12
|
+
<line num="7" count="0" type="stmt"/>
|
|
13
|
+
<line num="9" count="0" type="stmt"/>
|
|
14
|
+
<line num="11" count="1" type="stmt"/>
|
|
15
|
+
<line num="13" count="7" type="cond" truecount="3" falsecount="0"/>
|
|
16
|
+
<line num="14" count="9" type="cond" truecount="1" falsecount="1"/>
|
|
17
|
+
<line num="15" count="3" type="cond" truecount="2" falsecount="0"/>
|
|
18
|
+
<line num="16" count="5" type="stmt"/>
|
|
19
|
+
<line num="17" count="4" type="stmt"/>
|
|
20
|
+
<line num="18" count="11" type="cond" truecount="2" falsecount="0"/>
|
|
21
|
+
<line num="19" count="3" type="cond" truecount="1" falsecount="1"/>
|
|
22
|
+
<line num="22" count="7" type="cond" truecount="3" falsecount="0"/>
|
|
23
|
+
<line num="23" count="19" type="cond" truecount="3" falsecount="1"/>
|
|
24
|
+
<line num="24" count="9" type="cond" truecount="2" falsecount="0"/>
|
|
25
|
+
<line num="25" count="27" type="stmt"/>
|
|
26
|
+
<line num="27" count="27" type="cond" truecount="1" falsecount="1"/>
|
|
27
|
+
<line num="28" count="77" type="cond" truecount="3" falsecount="1"/>
|
|
28
|
+
<line num="29" count="77" type="cond" truecount="9" falsecount="4"/>
|
|
29
|
+
<line num="30" count="68" type="cond" truecount="2" falsecount="0"/>
|
|
30
|
+
<line num="31" count="68" type="cond" truecount="5" falsecount="1"/>
|
|
31
|
+
<line num="32" count="24" type="stmt"/>
|
|
32
|
+
<line num="33" count="9" type="stmt"/>
|
|
33
|
+
<line num="34" count="6" type="stmt"/>
|
|
34
|
+
<line num="35" count="0" type="stmt"/>
|
|
35
|
+
<line num="37" count="29" type="cond" truecount="7" falsecount="0"/>
|
|
36
|
+
<line num="38" count="20" type="cond" truecount="6" falsecount="0"/>
|
|
37
|
+
<line num="39" count="10" type="cond" truecount="4" falsecount="0"/>
|
|
38
|
+
<line num="40" count="6" type="cond" truecount="3" falsecount="1"/>
|
|
39
|
+
<line num="41" count="6" type="cond" truecount="1" falsecount="1"/>
|
|
40
|
+
<line num="42" count="6" type="stmt"/>
|
|
41
|
+
<line num="44" count="38" type="stmt"/>
|
|
42
|
+
<line num="45" count="77" type="stmt"/>
|
|
43
|
+
<line num="46" count="9" type="cond" truecount="3" falsecount="1"/>
|
|
44
|
+
<line num="49" count="7" type="cond" truecount="3" falsecount="0"/>
|
|
45
|
+
<line num="50" count="5" type="cond" truecount="2" falsecount="2"/>
|
|
46
|
+
<line num="51" count="10" type="cond" truecount="3" falsecount="1"/>
|
|
47
|
+
<line num="52" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
48
|
+
<line num="53" count="0" type="stmt"/>
|
|
49
|
+
<line num="56" count="5" type="cond" truecount="2" falsecount="0"/>
|
|
50
|
+
<line num="58" count="7" type="stmt"/>
|
|
51
|
+
<line num="59" count="7" type="stmt"/>
|
|
52
|
+
<line num="66" count="5" type="stmt"/>
|
|
53
|
+
<line num="67" count="5" type="stmt"/>
|
|
54
|
+
<line num="75" count="5" type="cond" truecount="4" falsecount="0"/>
|
|
55
|
+
<line num="76" count="3" type="stmt"/>
|
|
56
|
+
<line num="79" count="2" type="cond" truecount="1" falsecount="1"/>
|
|
57
|
+
<line num="80" count="2" type="stmt"/>
|
|
58
|
+
<line num="83" count="0" type="stmt"/>
|
|
59
|
+
<line num="84" count="0" type="stmt"/>
|
|
60
|
+
<line num="88" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
61
|
+
<line num="89" count="0" type="stmt"/>
|
|
62
|
+
<line num="90" count="0" type="cond" truecount="0" falsecount="4"/>
|
|
63
|
+
<line num="93" count="0" type="stmt"/>
|
|
64
|
+
<line num="94" count="0" type="stmt"/>
|
|
65
|
+
<line num="95" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
66
|
+
<line num="96" count="0" type="stmt"/>
|
|
67
|
+
<line num="97" count="0" type="stmt"/>
|
|
68
|
+
<line num="103" count="0" type="stmt"/>
|
|
69
|
+
<line num="112" count="2" type="stmt"/>
|
|
70
|
+
<line num="122" count="6" type="cond" truecount="2" falsecount="0"/>
|
|
71
|
+
<line num="123" count="6" type="cond" truecount="5" falsecount="0"/>
|
|
72
|
+
<line num="124" count="1" type="stmt"/>
|
|
73
|
+
<line num="126" count="5" type="cond" truecount="2" falsecount="0"/>
|
|
74
|
+
<line num="127" count="5" type="cond" truecount="2" falsecount="0"/>
|
|
75
|
+
<line num="136" count="6" type="cond" truecount="5" falsecount="0"/>
|
|
76
|
+
<line num="137" count="1" type="stmt"/>
|
|
77
|
+
<line num="139" count="5" type="cond" truecount="2" falsecount="0"/>
|
|
78
|
+
<line num="140" count="1" type="stmt"/>
|
|
79
|
+
<line num="141" count="1" type="cond" truecount="1" falsecount="1"/>
|
|
80
|
+
<line num="143" count="4" type="stmt"/>
|
|
81
|
+
<line num="144" count="10" type="stmt"/>
|
|
82
|
+
<line num="145" count="10" type="cond" truecount="1" falsecount="1"/>
|
|
83
|
+
<line num="147" count="4" type="cond" truecount="3" falsecount="1"/>
|
|
84
|
+
<line num="148" count="0" type="stmt"/>
|
|
85
|
+
<line num="150" count="4" type="cond" truecount="2" falsecount="0"/>
|
|
86
|
+
<line num="151" count="4" type="cond" truecount="2" falsecount="0"/>
|
|
87
|
+
<line num="153" count="2" type="stmt"/>
|
|
88
|
+
<line num="157" count="2" type="stmt"/>
|
|
89
|
+
<line num="165" count="1" type="stmt"/>
|
|
90
|
+
<line num="166" count="1" type="stmt"/>
|
|
91
|
+
<line num="167" count="1" type="stmt"/>
|
|
92
|
+
<line num="168" count="1" type="stmt"/>
|
|
93
|
+
<line num="177" count="2" type="cond" truecount="1" falsecount="1"/>
|
|
94
|
+
<line num="178" count="2" type="cond" truecount="1" falsecount="1"/>
|
|
95
|
+
<line num="179" count="2" type="stmt"/>
|
|
96
|
+
<line num="180" count="2" type="stmt"/>
|
|
97
|
+
<line num="181" count="2" type="stmt"/>
|
|
98
|
+
<line num="182" count="2" type="stmt"/>
|
|
99
|
+
<line num="183" count="2" type="cond" truecount="2" falsecount="0"/>
|
|
100
|
+
<line num="184" count="1" type="stmt"/>
|
|
101
|
+
<line num="185" count="1" type="stmt"/>
|
|
102
|
+
<line num="193" count="1" type="cond" truecount="1" falsecount="1"/>
|
|
103
|
+
<line num="194" count="1" type="stmt"/>
|
|
104
|
+
<line num="195" count="1" type="stmt"/>
|
|
105
|
+
<line num="196" count="1" type="stmt"/>
|
|
106
|
+
<line num="197" count="1" type="stmt"/>
|
|
107
|
+
<line num="198" count="1" type="cond" truecount="1" falsecount="1"/>
|
|
108
|
+
<line num="199" count="1" type="stmt"/>
|
|
109
|
+
<line num="200" count="1" type="cond" truecount="1" falsecount="1"/>
|
|
110
|
+
<line num="201" count="1" type="stmt"/>
|
|
111
|
+
<line num="202" count="1" type="stmt"/>
|
|
112
|
+
<line num="210" count="1" type="cond" truecount="1" falsecount="1"/>
|
|
113
|
+
<line num="211" count="1" type="stmt"/>
|
|
114
|
+
<line num="212" count="1" type="stmt"/>
|
|
115
|
+
<line num="213" count="1" type="stmt"/>
|
|
116
|
+
<line num="214" count="1" type="stmt"/>
|
|
117
|
+
<line num="215" count="1" type="stmt"/>
|
|
118
|
+
<line num="226" count="1" type="stmt"/>
|
|
119
|
+
<line num="227" count="1" type="stmt"/>
|
|
120
|
+
<line num="235" count="3" type="cond" truecount="1" falsecount="1"/>
|
|
121
|
+
<line num="236" count="3" type="stmt"/>
|
|
122
|
+
<line num="238" count="7" type="cond" truecount="2" falsecount="0"/>
|
|
123
|
+
<line num="239" count="3" type="stmt"/>
|
|
124
|
+
<line num="242" count="4" type="stmt"/>
|
|
125
|
+
<line num="244" count="7" type="stmt"/>
|
|
126
|
+
<line num="245" count="7" type="stmt"/>
|
|
127
|
+
<line num="247" count="3" type="stmt"/>
|
|
128
|
+
<line num="255" count="2" type="cond" truecount="1" falsecount="1"/>
|
|
129
|
+
<line num="256" count="2" type="stmt"/>
|
|
130
|
+
<line num="257" count="2" type="stmt"/>
|
|
131
|
+
<line num="265" count="2" type="cond" truecount="1" falsecount="1"/>
|
|
132
|
+
<line num="266" count="0" type="stmt"/>
|
|
133
|
+
<line num="268" count="2" type="stmt"/>
|
|
134
|
+
<line num="272" count="4" type="stmt"/>
|
|
135
|
+
<line num="273" count="4" type="stmt"/>
|
|
136
|
+
<line num="275" count="2" type="stmt"/>
|
|
137
|
+
<line num="283" count="1" type="stmt"/>
|
|
138
|
+
<line num="291" count="1" type="stmt"/>
|
|
139
|
+
<line num="300" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
140
|
+
<line num="301" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
141
|
+
<line num="302" count="0" type="stmt"/>
|
|
142
|
+
<line num="304" count="0" type="stmt"/>
|
|
143
|
+
<line num="306" count="0" type="stmt"/>
|
|
144
|
+
<line num="307" count="0" type="stmt"/>
|
|
145
|
+
<line num="308" count="0" type="stmt"/>
|
|
146
|
+
<line num="312" count="0" type="stmt"/>
|
|
147
|
+
<line num="314" count="0" type="stmt"/>
|
|
148
|
+
<line num="316" count="0" type="stmt"/>
|
|
149
|
+
<line num="317" count="0" type="stmt"/>
|
|
150
|
+
<line num="318" count="0" type="stmt"/>
|
|
151
|
+
<line num="319" count="0" type="stmt"/>
|
|
152
|
+
<line num="320" count="0" type="stmt"/>
|
|
153
|
+
<line num="322" count="0" type="cond" truecount="0" falsecount="4"/>
|
|
154
|
+
<line num="323" count="0" type="stmt"/>
|
|
155
|
+
<line num="326" count="0" type="stmt"/>
|
|
156
|
+
<line num="327" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
157
|
+
<line num="329" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
158
|
+
<line num="330" count="0" type="stmt"/>
|
|
159
|
+
<line num="331" count="0" type="stmt"/>
|
|
160
|
+
<line num="336" count="0" type="stmt"/>
|
|
161
|
+
<line num="338" count="0" type="stmt"/>
|
|
162
|
+
<line num="347" count="3" type="cond" truecount="1" falsecount="1"/>
|
|
163
|
+
<line num="348" count="0" type="stmt"/>
|
|
164
|
+
<line num="349" count="3" type="cond" truecount="3" falsecount="1"/>
|
|
165
|
+
<line num="350" count="0" type="stmt"/>
|
|
166
|
+
<line num="351" count="3" type="cond" truecount="2" falsecount="0"/>
|
|
167
|
+
<line num="352" count="1" type="stmt"/>
|
|
168
|
+
<line num="353" count="2" type="stmt"/>
|
|
169
|
+
<line num="354" count="6" type="cond" truecount="2" falsecount="0"/>
|
|
170
|
+
<line num="355" count="1" type="stmt"/>
|
|
171
|
+
<line num="357" count="1" type="stmt"/>
|
|
172
|
+
<line num="364" count="0" type="stmt"/>
|
|
173
|
+
<line num="372" count="6" type="stmt"/>
|
|
174
|
+
<line num="373" count="6" type="cond" truecount="2" falsecount="0"/>
|
|
175
|
+
<line num="374" count="3" type="stmt"/>
|
|
176
|
+
<line num="375" count="3" type="stmt"/>
|
|
177
|
+
<line num="376" count="3" type="stmt"/>
|
|
178
|
+
<line num="377" count="3" type="stmt"/>
|
|
179
|
+
<line num="378" count="3" type="stmt"/>
|
|
180
|
+
<line num="379" count="27" type="stmt"/>
|
|
181
|
+
<line num="381" count="3" type="stmt"/>
|
|
182
|
+
<line num="382" count="3" type="stmt"/>
|
|
183
|
+
<line num="383" count="3" type="stmt"/>
|
|
184
|
+
<line num="393" count="2" type="stmt"/>
|
|
185
|
+
<line num="394" count="2" type="stmt"/>
|
|
186
|
+
<line num="395" count="2" type="stmt"/>
|
|
187
|
+
<line num="396" count="6" type="stmt"/>
|
|
188
|
+
<line num="397" count="6" type="cond" truecount="4" falsecount="0"/>
|
|
189
|
+
<line num="398" count="1" type="stmt"/>
|
|
190
|
+
<line num="400" count="5" type="stmt"/>
|
|
191
|
+
<line num="402" count="1" type="cond" truecount="1" falsecount="1"/>
|
|
192
|
+
<line num="411" count="2" type="stmt"/>
|
|
193
|
+
<line num="412" count="2" type="stmt"/>
|
|
194
|
+
<line num="413" count="2" type="cond" truecount="1" falsecount="1"/>
|
|
195
|
+
<line num="414" count="0" type="stmt"/>
|
|
196
|
+
<line num="415" count="2" type="stmt"/>
|
|
197
|
+
<line num="416" count="2" type="stmt"/>
|
|
198
|
+
<line num="417" count="3" type="stmt"/>
|
|
199
|
+
<line num="418" count="3" type="cond" truecount="4" falsecount="0"/>
|
|
200
|
+
<line num="419" count="2" type="stmt"/>
|
|
201
|
+
<line num="421" count="3" type="stmt"/>
|
|
202
|
+
<line num="423" count="2" type="stmt"/>
|
|
203
|
+
<line num="432" count="1" type="stmt"/>
|
|
204
|
+
<line num="433" count="3" type="stmt"/>
|
|
205
|
+
<line num="434" count="3" type="cond" truecount="2" falsecount="0"/>
|
|
206
|
+
<line num="435" count="2" type="stmt"/>
|
|
207
|
+
<line num="437" count="3" type="stmt"/>
|
|
208
|
+
<line num="438" count="3" type="stmt"/>
|
|
209
|
+
<line num="447" count="2" type="stmt"/>
|
|
210
|
+
<line num="455" count="4" type="stmt"/>
|
|
211
|
+
<line num="456" count="4" type="cond" truecount="2" falsecount="0"/>
|
|
212
|
+
<line num="465" count="1" type="cond" truecount="1" falsecount="1"/>
|
|
213
|
+
<line num="466" count="1" type="stmt"/>
|
|
214
|
+
<line num="467" count="1" type="stmt"/>
|
|
215
|
+
<line num="468" count="1" type="stmt"/>
|
|
216
|
+
<line num="469" count="1" type="stmt"/>
|
|
217
|
+
<line num="470" count="1" type="stmt"/>
|
|
218
|
+
<line num="471" count="1" type="stmt"/>
|
|
219
|
+
<line num="472" count="1" type="stmt"/>
|
|
220
|
+
<line num="473" count="1" type="stmt"/>
|
|
221
|
+
<line num="482" count="2" type="stmt"/>
|
|
222
|
+
<line num="483" count="2" type="stmt"/>
|
|
223
|
+
<line num="484" count="4" type="cond" truecount="1" falsecount="1"/>
|
|
224
|
+
<line num="485" count="4" type="stmt"/>
|
|
225
|
+
<line num="486" count="4" type="stmt"/>
|
|
226
|
+
<line num="487" count="4" type="cond" truecount="8" falsecount="0"/>
|
|
227
|
+
<line num="493" count="1" type="stmt"/>
|
|
228
|
+
<line num="496" count="3" type="stmt"/>
|
|
229
|
+
<line num="500" count="2" type="stmt"/>
|
|
230
|
+
<line num="510" count="3" type="stmt"/>
|
|
231
|
+
<line num="511" count="3" type="stmt"/>
|
|
232
|
+
<line num="512" count="4" type="stmt"/>
|
|
233
|
+
<line num="514" count="3" type="stmt"/>
|
|
234
|
+
<line num="516" count="3" type="cond" truecount="2" falsecount="0"/>
|
|
235
|
+
<line num="517" count="3" type="cond" truecount="2" falsecount="0"/>
|
|
236
|
+
<line num="518" count="3" type="stmt"/>
|
|
237
|
+
<line num="519" count="14" type="cond" truecount="5" falsecount="0"/>
|
|
238
|
+
<line num="521" count="3" type="stmt"/>
|
|
239
|
+
<line num="523" count="6" type="stmt"/>
|
|
240
|
+
<line num="524" count="24" type="cond" truecount="6" falsecount="0"/>
|
|
241
|
+
<line num="526" count="6" type="stmt"/>
|
|
242
|
+
<line num="527" count="6" type="stmt"/>
|
|
243
|
+
<line num="528" count="6" type="stmt"/>
|
|
244
|
+
<line num="529" count="6" type="stmt"/>
|
|
245
|
+
<line num="531" count="4" type="stmt"/>
|
|
246
|
+
<line num="532" count="4" type="stmt"/>
|
|
247
|
+
<line num="533" count="4" type="cond" truecount="2" falsecount="0"/>
|
|
248
|
+
<line num="534" count="3" type="stmt"/>
|
|
249
|
+
<line num="535" count="3" type="stmt"/>
|
|
250
|
+
<line num="538" count="3" type="stmt"/>
|
|
251
|
+
<line num="539" count="3" type="stmt"/>
|
|
252
|
+
<line num="540" count="4" type="stmt"/>
|
|
253
|
+
<line num="541" count="4" type="stmt"/>
|
|
254
|
+
<line num="545" count="3" type="stmt"/>
|
|
255
|
+
<line num="546" count="3" type="stmt"/>
|
|
256
|
+
<line num="548" count="7" type="cond" truecount="2" falsecount="0"/>
|
|
257
|
+
<line num="549" count="6" type="stmt"/>
|
|
258
|
+
<line num="551" count="6" type="stmt"/>
|
|
259
|
+
<line num="552" count="6" type="cond" truecount="2" falsecount="0"/>
|
|
260
|
+
<line num="553" count="2" type="stmt"/>
|
|
261
|
+
<line num="554" count="4" type="stmt"/>
|
|
262
|
+
<line num="556" count="4" type="stmt"/>
|
|
263
|
+
<line num="557" count="4" type="stmt"/>
|
|
264
|
+
<line num="558" count="1" type="stmt"/>
|
|
265
|
+
<line num="570" count="5" type="stmt"/>
|
|
266
|
+
<line num="591" count="5" type="stmt"/>
|
|
267
|
+
<line num="592" count="13" type="stmt"/>
|
|
268
|
+
<line num="593" count="13" type="cond" truecount="3" falsecount="1"/>
|
|
269
|
+
<line num="594" count="13" type="stmt"/>
|
|
270
|
+
<line num="595" count="13" type="stmt"/>
|
|
271
|
+
<line num="597" count="0" type="stmt"/>
|
|
272
|
+
<line num="599" count="5" type="stmt"/>
|
|
273
|
+
<line num="600" count="5" type="stmt"/>
|
|
274
|
+
<line num="610" count="2" type="cond" truecount="1" falsecount="1"/>
|
|
275
|
+
<line num="611" count="2" type="stmt"/>
|
|
276
|
+
<line num="612" count="7" type="stmt"/>
|
|
277
|
+
<line num="613" count="7" type="stmt"/>
|
|
278
|
+
<line num="614" count="7" type="cond" truecount="2" falsecount="0"/>
|
|
279
|
+
<line num="615" count="2" type="cond" truecount="2" falsecount="0"/>
|
|
280
|
+
<line num="616" count="5" type="cond" truecount="1" falsecount="1"/>
|
|
281
|
+
<line num="617" count="5" type="cond" truecount="2" falsecount="0"/>
|
|
282
|
+
<line num="618" count="0" type="stmt"/>
|
|
283
|
+
<line num="627" count="2" type="stmt"/>
|
|
284
|
+
<line num="629" count="6" type="stmt"/>
|
|
285
|
+
<line num="630" count="6" type="cond" truecount="2" falsecount="0"/>
|
|
286
|
+
<line num="633" count="4" type="stmt"/>
|
|
287
|
+
<line num="634" count="4" type="stmt"/>
|
|
288
|
+
<line num="647" count="3" type="cond" truecount="1" falsecount="1"/>
|
|
289
|
+
<line num="648" count="3" type="cond" truecount="1" falsecount="1"/>
|
|
290
|
+
<line num="649" count="3" type="cond" truecount="1" falsecount="1"/>
|
|
291
|
+
<line num="650" count="3" type="cond" truecount="2" falsecount="0"/>
|
|
292
|
+
<line num="651" count="1" type="stmt"/>
|
|
293
|
+
<line num="652" count="2" type="stmt"/>
|
|
294
|
+
<line num="653" count="2" type="stmt"/>
|
|
295
|
+
<line num="654" count="2" type="stmt"/>
|
|
296
|
+
<line num="655" count="2" type="stmt"/>
|
|
297
|
+
<line num="658" count="7" type="stmt"/>
|
|
298
|
+
</file>
|
|
299
|
+
</project>
|
|
300
|
+
</coverage>
|