6218e80e5b75379166db85067fb640fa4481baff
[apps/core/preloaded/print-service.git] / TC / ppd_test.sh
1 #!/bin/sh
2
3 #used in extraction test
4 hp_drvgz_path="/usr/share/cups/ppd/hp/hp.drv.gz"
5 samsung_drvgz_path="/usr/share/cups/ppd/samsung/samsung.drv.gz"
6 epson_drvgz_path="/usr/share/cups/ppd/epson/epson.drv.gz"
7
8 hp_drv_path="/opt/etc/cups/ppd/hp/hp.drv"
9 samsung_drv_path="/opt/etc/cups/ppd/samsung/samsung.drv"
10 epson_drv_path="/opt/etc/cups/ppd/epson/epson.drv"
11
12 hp_list_path="/opt/etc/cups/ppd/hp.list"
13 hp_product_path="/opt/etc/cups/ppd/hp_product.list"
14 samsung_list_path="/opt/etc/cups/ppd/samsung.list"
15 epson_list_path="/opt/etc/cups/ppd/epson.list"
16
17 epson_extraction_complete=0
18 samsung_extraction_complete=0
19 hp_extraction_complete=0
20
21 EPSON_TEMP="/tmp/epson_temp"
22 SAMSUNG_TEMP="/tmp/samsung_temp"
23 HP_TEMP="/tmp/hp_temp"
24 HP_PRODUCT_TEMP="/tmp/hp_product_temp"
25
26 #used in validation test
27 EPSON_VALID="/tmp/epson_valid"
28 SAMSUNG_VALID="/tmp/samsung_valid"
29 HP_VALID="/tmp/hp_valid"
30 ready_to_test=0
31
32 function extraction_test(){
33
34         if [ -f $DRVGZ_PATH ]
35         then
36                 rm $DRV_PATH 2>/dev/null
37                 cp $DRVGZ_PATH $DRV_PATH.gz
38                 gzip -d $DRV_PATH.gz
39         fi
40
41         if [ -f $DRV_PATH ]
42         then
43                 echo "Extracting ppd from $DRV_PATH"
44                 exit_val=0
45                 org_ppd_files=0
46                 ext_ppd_files=0
47         else
48                 echo "[ERROR] Not found $DRV_PATH"
49                 exit_val=1
50         fi
51
52         if [ $exit_val -eq 0 ]
53         then
54                 if [ ! -d $TEMP_PATH ];then
55                         mkdir $TEMP_PATH
56                 else
57                         rm -rf $TEMP_PATH
58                         mkdir $TEMP_PATH
59                 fi
60                 cd $TEMP_PATH
61                 #org_ppd_files=`grep -rn " ModelName" $DRV_PATH | wc -l`
62                 #grep -rn " ModelName" $DRV_PATH | awk -F "ModelName " '{print $2}' | awk -F "\"" '{print $2}' > $TEMP_PATH/modelnames.txt
63                 org_ppd_files=`cat $LIST_PATH | wc -l`
64                 cat $LIST_PATH > $TEMP_PATH/modelnames.txt
65                 starttime=$(/bin/date +%s)
66                 while read line ; do
67                         getppd -r "$line" -i $DRV_PATH 2>>$TEMP_PATH/$VENDOR"_error.txt" 1>/dev/null
68                         if [ ! $? -eq 0 ]
69                         then
70                                 echo "[FAIL] Failed to extract $line"
71                                 echo "[FAIL] Failed to extract $line" >> $TEMP_PATH/$VENDOR"_error.txt"
72                         else
73                                 echo "[PASS] $line" >>$TEMP_PATH/$VENDOR"_error.txt"
74                         fi
75                 done < $TEMP_PATH/modelnames.txt
76                 ext_ppd_files=`ls *.ppd | wc -l 2>/dev/null`
77                 echo "[INFO] Original ppd files = $org_ppd_files"
78                 echo "[INFO] Extracted ppd files = $ext_ppd_files"
79                 stoptime=$(/bin/date +%s)
80                 runtime=$(($stoptime-$starttime))
81                 echo "Elapsed Time: $runtime sec"
82                 cd
83         fi
84
85         if [ $org_ppd_files -eq $ext_ppd_files ] && [ $org_ppd_files -ne 0 ]
86         then
87                 extraction_complete=1
88                 echo "[PASS] Checking whether all ppds are extracted"
89         else
90                 extraction_complete=0
91                 echo "[FAIL] Checking whether all ppds are extracted"
92                 echo "[INFO] Refer $TEMP_PATH for details"
93         fi
94 }
95
96 function epson_extraction_test(){
97
98 echo "===================================================================="
99 echo "  Extraction TEST - Epson                                                 "
100 echo "===================================================================="
101
102 DRVGZ_PATH="$epson_drvgz_path"
103 DRV_PATH="$epson_drv_path"
104 LIST_PATH="$epson_list_path"
105 TEMP_PATH="$EPSON_TEMP"
106 VENDOR="epson"
107
108 extraction_test
109
110 if [ $extraction_complete -eq 1 ]
111 then
112         epson_extraction_complete=1
113 else
114         epson_extraction_complete=0
115 fi
116
117 }
118
119 function samsung_extraction_test(){
120 echo "===================================================================="
121 echo "  Extraction TEST - Samsung                                                       "
122 echo "===================================================================="
123
124 DRVGZ_PATH=$samsung_drvgz_path
125 DRV_PATH=$samsung_drv_path
126 LIST_PATH="$samsung_list_path"
127 TEMP_PATH=$SAMSUNG_TEMP
128 VENDOR="samsung"
129
130 extraction_test
131
132 if [ $extraction_complete -eq 1 ]
133 then
134         samsung_extraction_complete=1
135 else
136         samsung_extraction_complete=0
137 fi
138
139 }
140
141 function hp_extraction_test(){
142 echo "===================================================================="
143 echo "  Extraction TEST - HP                                                            "
144 echo "===================================================================="
145
146 DRVGZ_PATH=$hp_drvgz_path
147 DRV_PATH=$hp_drv_path
148 LIST_PATH="$hp_list_path"
149 TEMP_PATH=$HP_TEMP
150 VENDOR="hp"
151
152 extraction_test
153
154 if [ $extraction_complete -eq 1 ]
155 then
156         hp_extraction_complete=1
157 else
158         hp_extraction_complete=0
159 fi
160
161 }
162
163 function hp_product_extraction_test(){
164 echo "===================================================================="
165 echo "  Extraction TEST - HP Product extraction                         "
166 echo "  *PPD files can be duplicate becasue one ppd support many products."
167 echo "===================================================================="
168
169 DRVGZ_PATH=$hp_drvgz_path
170 DRV_PATH=$hp_drv_path
171 PRODUCT_PATH=$hp_product_path
172 TEMP_PATH=$HP_PRODUCT_TEMP
173 VENDOR="hp"
174
175 if [ -f $DRVGZ_PATH ]
176 then
177         rm $DRV_PATH 2>/dev/null
178         cp $DRVGZ_PATH $DRV_PATH.gz
179         gzip -d $DRV_PATH.gz
180 fi
181
182 if [ -f $DRV_PATH ]
183 then
184         echo "Extracting ppd from $DRV_PATH"
185         exit_val=0
186         org_product_num=0
187         ext_product_num=0       
188 else
189         echo "[ERROR] Not found $DRV_PATH"
190         exit_val=1
191 fi
192
193 if [ $exit_val -eq 0 ]
194 then
195         if [ ! -d $TEMP_PATH ];then
196                 mkdir $TEMP_PATH
197         else
198                 rm -rf $TEMP_PATH
199                 mkdir $TEMP_PATH
200         fi
201         cd $TEMP_PATH
202         #org_product_num=`grep -rn "\"Product\"" $DRV_PATH | wc -l`
203         #grep -rn "\"Product\"" $DRV_PATH | awk -F "\"" '{print $6}' | awk -F "(" '{print $2}' | awk -F ")" '{print $1}' > $TEMP_PATH/products.txt
204         org_product_num=`cat $PRODUCT_PATH | wc -l`
205         cat $PRODUCT_PATH > $TEMP_PATH/products.txt
206         starttime=$(/bin/date +%s)
207         while read line ; do
208                 getppd -p "$line" -i $DRV_PATH 2>>$TEMP_PATH/$VENDOR"_product_error.txt" 1>/dev/null
209                 if [ ! $? -eq 0 ]
210                 then
211                         echo "[FAIL] Failed to extract $line"
212                         echo "[FAIL] Failed to extract $line" >> $TEMP_PATH/$VENDOR"_product_error.txt"
213                 else
214                         echo "[SUCCESS] $line" >> $TEMP_PATH/$VENDOR"_product_success.txt"
215                 fi
216         done < $TEMP_PATH/products.txt
217         ext_product_num=`cat $TEMP_PATH/$VENDOR"_product_success.txt" | wc -l 2>/dev/null`
218         echo "[INFO] Original Product Nums = $org_product_num"
219         echo "[INFO] Extracted Product Nums = $ext_product_num"
220         stoptime=$(/bin/date +%s)
221         runtime=$(($stoptime-$starttime))
222         echo "Elapsed Time: $runtime sec"
223         cd
224 fi
225 }
226
227 function is_ignore_keyword(){
228 IGNORE_KEYWORD="
229 cupsVersion
230 driverUrl
231 ModelName
232 OpenUI
233 CloseUI
234 CloseGroup
235 JCLOpenUI
236 JCLCloseUI
237 VariablePaperSize
238 "
239
240 for index in $IGNORE_KEYWORD
241 do
242         if [ "$1" = "$index" ]
243         then
244                 return 1
245         fi
246 done
247 return 0
248 }
249
250
251 function validation_test(){
252
253         if [ $EXTRACTION_COMPLETE -eq 0 ]
254         then
255                 echo -n "Extraction is failed..."
256                 echo -n "Press f key to continue forcefully or any key to quit..."
257                 read force_run
258         fi
259
260         if [ $EXTRACTION_COMPLETE -eq 1 ] || [ "$force_run" = "f" ]
261         then
262                 echo -n "Specify original ppd path[$ORIGINAL_PPD_PATH]: "
263                 read original_ppd_path
264                 if [ -z $original_ppd_path ]
265                 then
266                         original_ppd_path=$ORIGINAL_PPD_PATH
267                 fi
268
269                 if [ ! -d $original_ppd_path ]
270                 then
271                         echo "Checking whether original ppd exists...[FAIL]"
272                 else
273                         echo "Checking whether original ppd exists...[PASS]"
274                         ext_files=`ls $TEMP_PATH/*.ppd | wc -l 2>/dev/null`
275                         org_files=`ls $original_ppd_path/*.ppd | wc -l 2>/dev/null`
276
277                         echo -n "Checking whether ppd's count is equal..."
278
279                         if [ $ext_files -eq $org_files ]
280                         then
281                                 echo "[PASS]"
282                         else
283                                 echo "[FAIL]"
284                         fi
285
286                         if [ ! -d $VALID_PATH ];then
287                                 mkdir $VALID_PATH
288                                 mkdir $VALID_RESULT_PATH
289                         else
290                                 rm -rf $VALID_PATH
291                                 mkdir $VALID_PATH
292                                 mkdir $VALID_RESULT_PATH
293                         fi
294
295                         ls $TEMP_PATH/*.ppd | sort | awk -F "/" '{print $NF}' > $VALID_PATH/ext_list 2>/dev/null
296                         ls $original_ppd_path/*.ppd | sort | awk -F "/" '{print $NF}' > $VALID_PATH/org_list 2>/dev/null
297
298                         diff -urN $VALID_PATH/ext_list $VALID_PATH/org_list > $VALID_PATH/diff_list_result
299
300                         if [ -s $VALID_PATH/diff_list_result ]
301                         then
302                                 echo "There are different name or count between original and extracted ppds"
303                                 echo "Please consult $VALID_PATH/diff_list_result for details"
304                                 echo "diff_list_result is to compare $VALID_PATH/org_list and $VALID_PATH/ext_list"
305                         fi
306
307                         ready_to_test=1
308                 fi
309         fi
310
311         if [ $ready_to_test -ne 1 ]
312         then
313                 ready_to_test=0
314         else
315                 echo "Running validation test..."
316                 mkdir $VALID_PATH/org
317                 mkdir $VALID_PATH/opt
318
319                 for i in `ls $TEMP_PATH/*.ppd`
320                 do
321                         cp $i $VALID_PATH/opt/${i##*/}
322                 done
323
324                 echo "Checking whether there are the pair of original and extracted ppds..."
325                 for i in `ls $original_ppd_path/*.ppd`
326                 do
327                         cp $i $VALID_PATH/org/${i##*/}
328                         not_found_count=0
329                         if [ ! -s $VALID_PATH/opt/${i##*/} ]
330                         then
331                                 #echo "[FAIL] ${i##*/} was not found in $VALID_PATH/opt/"
332                                 echo "[FAIL] ${i##*/} was not found in $VALID_PATH/opt/" >> $VALID_PATH/no_found_list
333                                 not_found_count=`expr $not_found_count + 1`
334                         fi
335                 done
336
337                 if [ $not_found_count -ne 0 ]
338                 then
339                         echo "[INFO] Not found ppd : $not_found_count"
340                 fi
341
342                 echo "Checking diff between original and extracted ppds..."
343                 total_count=`ls $VALID_PATH/org/*.ppd | wc -l`
344                 processed_count=0
345                 skipped_count=0
346                 different_count=0
347                 passed_count=0
348
349                 # *Keyword: Value Type
350                 KV_keyword=`cat $VALID_PATH/org/*.ppd | grep "^*[a-zA-Z0-9-]\+:" | awk -F ":" '{print $1}' | awk -F "*" '{print $2}' | sort -u`
351                 KV_count=`cat $VALID_PATH/org/*.ppd | grep "^*[a-zA-Z0-9-]\+:" | awk -F ":" '{print $1}' | awk -F "*" '{print $2}' | sort -u | wc -l`
352
353                 # *Keyword Value: Value Type
354                 KVV_keyword=`cat $VALID_PATH/org/*.ppd | grep "^*[a-zA-Z0-9]\+ [^/]\+:" | awk -F ":" '{print $1}' | awk '{print $1}' | awk -F "*" '{print $2}' | sort -u`
355                 KVV_count=`cat $VALID_PATH/org/*.ppd | grep "^*[a-zA-Z0-9]\+ [^/]\+:" | awk -F ":" '{print $1}' | awk '{print $1}' | awk -F "*" '{print $2}' | sort -u | wc -l`
356
357                 # *Keyword Value/Value: Value Type
358                 #KV_VV_keyword=`cat $VALID_PATH/org/*.ppd | grep "^*[a-zA-Z0-9]\+ .\+/.\+:" | awk -F ":" '{print $1}' | awk '{print $1}' | awk -F "*" '{print $2}' | sort -u`
359                 #KV_VV_count=`cat $VALID_PATH/org/*.ppd | grep "^*[a-zA-Z0-9]\+ .\+/.\+:" | awk -F ":" '{print $1}' | awk '{print $1}' | awk -F "*" '{print $2}' | sort -u | wc -l`
360
361                 for i in `ls $VALID_PATH/org/*.ppd`
362                 do
363                         processed_count=`expr $processed_count + 1`
364                         echo -en "\r[$processed_count/$total_count]"
365                         if [ ! -s $VALID_PATH/opt/${i##*/} ]
366                         then
367                                 #echo "[SKIP] There is no ${i##*/} in $VALID_PATH/opt/"
368                                 echo "[SKIP] There is no ${i##*/} in $VALID_PATH/opt/" >> $VALID_PATH/skipped_ppd_list
369                                 skipped_count=`expr $skipped_count + 1`
370                         else
371                                 for keyword in $KV_keyword
372                                 do
373                                         KV_value_org=`getppdvalue KVM $keyword $VALID_PATH/org/${i##*/} | sort`
374                                         KV_value_opt=`getppdvalue KVM $keyword $VALID_PATH/opt/${i##*/} | sort`
375
376                                         is_ignore_keyword $keyword
377                                         if [ ! $? -eq 1 ]
378                                         then
379                                                 if [ "$KV_value_org" != "$KV_value_opt" ]
380                                                 then
381                                                         echo "@$keyword@" >> $VALID_RESULT_PATH/${i##*/}
382                                                         echo "[org] $KV_value_org" >> $VALID_RESULT_PATH/${i##*/}
383                                                         echo "[opt] $KV_value_opt" >> $VALID_RESULT_PATH/${i##*/}
384                                                 fi
385                                         fi
386
387                                 done
388
389                                 for keyword in $KVV_keyword
390                                 do
391                                         KVV_value_org=`getppdvalue KVM $keyword $VALID_PATH/org/${i##*/} | sort`
392                                         KVV_value_opt=`getppdvalue KVM $keyword $VALID_PATH/opt/${i##*/} | sort`
393
394                                         is_ignore_keyword $keyword
395                                         if [ ! $? -eq 1 ]
396                                         then
397                                                 if [ "$KVV_value_org" != "$KVV_value_opt" ]
398                                                 then
399                                                         echo "@$keyword@" >> $VALID_RESULT_PATH/${i##*/}
400                                                         echo "[org] $KVV_value_org" >> $VALID_RESULT_PATH/${i##*/}
401                                                         echo "[opt] $KVV_value_opt" >> $VALID_RESULT_PATH/${i##*/}
402                                                 fi
403                                         fi
404                                 done
405
406                                 org_options=`getppdvalue OPT $VALID_PATH/org/${i##*/} | sort`
407                                 opt_options=`getppdvalue OPT $VALID_PATH/opt/${i##*/} | sort`
408                                 
409                                 # get option keywords
410                                 for org_option in $org_options
411                                 do
412                                         is_ignore_keyword $org_option
413                                         if [ ! $? -eq 1 ]
414                                         then
415                                                 #get option choices
416                                                 KV_VV_org_choices=`cat $VALID_PATH/org/${i##*/} | grep "^*$org_option" | awk '{print $2}' | awk -F ":" '{print $1}' | awk -F "/" '{print $1}'`
417                                                 #KV_VV_opt_choices=`cat $VALID_PATH/opt/${i##*/} | grep "^*$org_option" | awk '{print $2}' | awk -F ":" '{print $1}' | awk -F "/" '{print $1}'`
418
419                                                 for choice in $KV_VV_org_choices
420                                                 do
421                                                         KV_VV_value_org=`getppdvalue CHOICE $choice $VALID_PATH/org/${i##*/}`
422                                                         KV_VV_value_opt=`getppdvalue CHOICE $choice $VALID_PATH/opt/${i##*/}`
423
424                                                         #compare choice value
425                                                         if [ "$KV_VV_value_org" != "$KV_VV_value_opt" ]
426                                                         then
427                                                                 echo "@$org_option@$choice@" >> $VALID_RESULT_PATH/${i##*/}
428                                                                 echo "[org] $KV_VV_value_org" >> $VALID_RESULT_PATH/${i##*/}
429                                                                 echo "[opt] $KV_VV_value_opt" >> $VALID_RESULT_PATH/${i##*/}
430                                                         fi
431                                                 done
432                                         fi
433                                 done
434
435                                 if [ -s  $VALID_RESULT_PATH/${i##*/} ]
436                                 then
437                                         echo "[DIFF] ${i##*/}" >> $VALID_PATH/different_ppd_list
438                                         different_count=`expr $different_count + 1`
439                                 else
440                                         echo "[PASS] ${i##*/}" >> $VALID_PATH/equal_ppd_list
441                                         if [ -e  $VALID_RESULT_PATH/${i##*/} ]
442                                         then
443                                                 rm $VALID_RESULT_PATH/${i##*/}
444                                         fi
445                                         passed_count=`expr $passed_count + 1`
446                                 fi
447                         fi
448                 done
449
450                 valid_result=`cat $VALID_RESULT_PATH/*.ppd | grep "^@" | awk -F "@" '{print $2}' | sort -u`
451                 if [ "$valid_result" != "" ]
452                 then
453                         echo "There are keywords including different values"
454                         echo "Please check files in $VALID_RESULT_PATH for details"
455                         echo "$valid_result"
456                 fi
457
458                 echo "[INFO] Skipped count : $skipped_count"
459                 echo "[INFO] Different count : $different_count"
460                 echo "[INFO] Passed count : $passed_count"
461
462         fi
463
464 }
465
466 function epson_validation_test(){
467
468 echo "===================================================================="
469 echo "  Validation TEST - Epson                                                 "
470 echo "===================================================================="
471
472 EXTRACTION_COMPLETE=$epson_extraction_complete
473 ORIGINAL_PPD_PATH="/opt/etc/cups/ppd/org_ppd/epson"
474 VALID_PATH=$EPSON_VALID
475 VALID_RESULT_PATH=$EPSON_VALID/result
476 TEMP_PATH=$EPSON_TEMP
477 VENDOR="epson"
478
479 if [ $EXTRACTION_COMPLETE -eq 1 ]
480 then 
481         echo "Checking whether extraction is completed : [PASS]"
482 else
483         echo "extraction may not be complete."
484         echo "Press f key to continue forcefully or any key to extract firstly"
485         read go_valid_test
486
487         if [ ! "$go_valid_test" = "f" ]
488         then
489                 echo "Running extraction test..."
490                 epson_extraction_test
491                 EXTRACTION_COMPLETE=$epson_extraction_complete
492         else
493                 EXTRACTION_COMPLETE=1
494         fi
495 fi
496
497 ready_to_test=0
498 validation_test
499
500 }
501
502 function samsung_validation_test(){
503
504 echo "===================================================================="
505 echo "  Validation TEST - Samsung                                                       "
506 echo "===================================================================="
507
508 EXTRACTION_COMPLETE=$samsung_extraction_complete
509 ORIGINAL_PPD_PATH="/opt/etc/cups/ppd/org_ppd/samsung"
510 VALID_PATH=$SAMSUNG_VALID
511 VALID_RESULT_PATH=$SAMSUNG_VALID/result
512 TEMP_PATH=$SAMSUNG_TEMP
513 VENDOR="samsung"
514
515 if [ $EXTRACTION_COMPLETE -eq 1 ]
516 then 
517         echo "Checking whether extraction is completed : [PASS]"
518 else
519         echo "extraction may not be complete."
520         echo "Press f key to continue forcefully or any key to extract firstly"
521         read go_valid_test
522
523         if [ ! "$go_valid_test" = "f" ]
524         then
525                 echo "Running extraction test..."
526                 samsung_extraction_test
527                 EXTRACTION_COMPLETE=$samsung_extraction_complete
528         else
529                 EXTRACTION_COMPLETE=1
530         fi
531 fi
532
533 ready_to_test=0
534 validation_test
535
536 }
537
538 function hp_validation_test(){
539
540 echo "===================================================================="
541 echo "  Validation TEST - HP                                                    "
542 echo "===================================================================="
543
544 EXTRACTION_COMPLETE=$hp_extraction_complete
545 ORIGINAL_PPD_PATH="/opt/etc/cups/ppd/org_ppd/hp"
546 VALID_PATH=$HP_VALID
547 VALID_RESULT_PATH=$HP_VALID/result
548 TEMP_PATH=$HP_TEMP
549 VENDOR="hp"
550
551 if [ $EXTRACTION_COMPLETE -eq 1 ]
552 then 
553         echo "Checking whether extraction is completed : [PASS]"
554 else
555         echo "extraction may not be complete."
556         echo "Press f key to continue forcefully or any key to extract firstly"
557         read go_valid_test
558
559         if [ ! "$go_valid_test" = "f" ]
560         then
561                 echo "Running extraction test..."
562                 hp_extraction_test
563                 EXTRACTION_COMPLETE=$hp_extraction_complete
564         else
565                 EXTRACTION_COMPLETE=1
566         fi
567 fi
568
569 ready_to_test=0
570 validation_test
571
572 }
573
574 function epson_ui_validation_test(){
575
576 echo "===================================================================="
577 echo "  UI Validation TEST - Epson                                              "
578 echo "===================================================================="
579
580 echo "TBD..."
581
582 }
583
584 function samsung_ui_validation_test(){
585
586 echo "===================================================================="
587 echo "  UI Validation TEST - Samsung                                    "
588 echo "===================================================================="
589
590 echo "TBD..."
591
592 }
593
594 function hp_ui_validation_test(){
595
596 echo "===================================================================="
597 echo "  UI Validation TEST - HP                                                 "
598 echo "===================================================================="
599
600 echo "TBD..."
601
602 }
603
604 function help(){
605         echo "===================================================================="
606         echo " Extraction TEST                                                                  "
607         echo " -Test whether ppd files are extracted from drv file      "
608         echo " -Error log is saved in /tmp/XXX_temp                             "
609         echo " -It needs ppdc utility, which CUPS includes                      "
610         echo "                                                                                          "
611         echo " PPD Validation TEST                                                              "
612         echo " -Test whether extracted file is valid on the basis of PPD Spec v4.3"
613         echo " -It needs cupstestppd utility, which CUPS includes       "
614         echo " -If original ppd path is specified,                                      "
615         echo "   It compares the results between original and extracted in sorted"
616         echo "   You have to run script in original_ppd path(like 1_rename.sh)"
617         echo " UI Validation TEST(TBD)                                                  "
618         echo " - Test whether ppd option mapping is valid                       "
619         echo "===================================================================="
620 }
621
622 function print_menu(){
623         echo "===================================================================="
624         echo " Extraction TEST                                                          "
625         echo "  0. All extraction test(run 1,2,3)                               "
626         echo "  1. Epson extraction test                                        "
627         echo "  2. Samsung extraction test                                      "
628         echo "  3. HP extraction test                                           "
629         echo "  4. HP Product extraction test                           "
630         echo " PPD Validation TEST                                                      "
631         echo "  5. All PPD validation test(run 6,7,8)                   "
632         echo "  6. Epson PPD validation test                                    "
633         echo "  7. Samsung PPD validation test                          "
634         echo "  8. HP PPD validation test                                       "       
635         echo " UIConstraint TEST(TBD)                                           "
636         echo "  9. All UI validation test(run a,b,c)                    "
637         echo "  a. Epson UI validation test                                     "
638         echo "  b. Samsung UI validation test                           "
639         echo "  c. HP UI validation test                                                "
640         echo "  h. help                                                                 "
641         echo "  q. quit                                                                 "
642         echo "===================================================================="
643         echo -n "Which Test :"
644 }
645
646 function quit_menu(){
647         echo ""
648         echo -n "Press any key to continue or q to quit..."
649 }
650
651 while :
652 do
653         print_menu
654         read menu_num
655         case $menu_num in
656         "0" )
657                 epson_extraction_test
658                 samsung_extraction_test
659                 hp_extraction_test
660                 hp_product_extraction_test
661                 exit 0;;
662         "1" )
663                 epson_extraction_test;;
664         "2" )
665                 samsung_extraction_test;;
666         "3" )
667                 hp_extraction_test;;
668         "4" )
669                 hp_product_extraction_test;;
670         "5" )
671                 epson_validation_test
672                 samsung_validation_test
673                 hp_validation_test
674                 exit 0;;
675         "6" )
676                 epson_validation_test;;
677         "7" )
678                 samsung_validation_test;;       
679         "8" )   
680                 hp_validation_test;;
681         "9" )   
682                 epson_ui_validation_test                
683                 samsung_ui_validation_test
684                 hp_ui_validation_test;;         
685         "a" )
686                 epson_ui_validation_test;;
687         "b" )
688                 samsung_ui_validation_test;;    
689         "c" )   
690                 hp_ui_validation_test;;
691         "h" )
692                 help;;
693         "q" )
694                 exit 0;;
695         esac
696
697         quit_menu
698         read quit_num
699         case $quit_num in
700         "q" )
701                 exit 0;;
702         esac    
703 done
704