1 /******************************************************************************
2 * Copyright (c) 2000-2016 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
11 * Szabo, Janos Zoltan – initial implementation
12 * Zalanyi, Balazs Andor
14 ******************************************************************************/
26 #define LOGFORMAT "ttcn3_logformat -s"
27 #endif /* LOGFORMAT */
29 static const unsigned char logo
[] = {
30 0x47, 0x49, 0x46, 0x38, 0x37, 0x61, 0x64, 0x00, 0x1B, 0x00,
31 0xF2, 0x00, 0x00, 0x40, 0x66, 0xCC, 0x80, 0x99, 0xCC, 0xA2,
32 0xA8, 0xE9, 0xBF, 0xCC, 0xFF, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF,
33 0xFF, 0xE1, 0xE9, 0xF3, 0x4E, 0x92, 0xCB, 0x2C, 0x00, 0x00,
34 0x00, 0x00, 0x64, 0x00, 0x1B, 0x00, 0x00, 0x03, 0xFE, 0x08,
35 0xBA, 0xDC, 0xFE, 0x30, 0xCA, 0x49, 0xAB, 0xBD, 0x38, 0xEB,
36 0xCD, 0xBB, 0xFF, 0x60, 0x28, 0x8E, 0x64, 0x69, 0x9E, 0x68,
37 0x3A, 0x0A, 0x83, 0xA1, 0xBE, 0xE1, 0x31, 0x10, 0x34, 0x21,
38 0xC0, 0xB8, 0xD6, 0xD2, 0x45, 0x41, 0x07, 0xB9, 0xE0, 0x24,
39 0x50, 0xE3, 0x11, 0x0C, 0x37, 0xA1, 0xF2, 0x41, 0x2C, 0xDA,
40 0x0E, 0x00, 0xA8, 0x26, 0xC0, 0x1A, 0xB0, 0x92, 0x03, 0xAB,
41 0x15, 0x08, 0x08, 0x0C, 0xB8, 0x00, 0x81, 0xA1, 0x95, 0xF4,
42 0x8E, 0xCB, 0xAD, 0xEC, 0xC2, 0x8C, 0x5C, 0x54, 0xDD, 0x83,
43 0x48, 0x93, 0xF0, 0x8D, 0x8A, 0x09, 0x05, 0xB0, 0x45, 0xE0,
44 0x8C, 0xF3, 0x8F, 0x06, 0x34, 0x50, 0x3F, 0x5D, 0x34, 0x63,
45 0x33, 0x00, 0x33, 0x36, 0x2D, 0x85, 0x74, 0x62, 0x0A, 0x8A,
46 0x77, 0x04, 0x0A, 0x35, 0x2E, 0x00, 0x34, 0x12, 0x01, 0x5C,
47 0x01, 0x81, 0x45, 0x71, 0x18, 0x33, 0x49, 0x6E, 0x47, 0x0A,
48 0x81, 0x40, 0x34, 0x37, 0x34, 0x9F, 0x0B, 0xAA, 0x0C, 0x81,
49 0xAB, 0x8D, 0x52, 0xAF, 0x97, 0x3E, 0x04, 0xA7, 0x04, 0x52,
50 0x10, 0x5E, 0x4E, 0x86, 0xB9, 0x16, 0x33, 0x48, 0x54, 0x40,
51 0x7C, 0x06, 0x9A, 0x84, 0xA8, 0x44, 0x05, 0xBE, 0x89, 0x3E,
52 0x75, 0x61, 0x3E, 0xC5, 0x0A, 0x02, 0x05, 0x96, 0xCF, 0x2E,
53 0x78, 0x81, 0xD7, 0x93, 0x11, 0x9D, 0xB5, 0xAA, 0x7A, 0x17,
54 0x33, 0x3D, 0xCD, 0x5D, 0xB5, 0x3D, 0x5C, 0x78, 0x02, 0x01,
55 0x3E, 0x0F, 0x81, 0x3D, 0x96, 0x8A, 0x3E, 0x32, 0x74, 0x6B,
56 0xEC, 0x3F, 0xA8, 0xF2, 0x10, 0x7F, 0x3E, 0x05, 0xCE, 0x54,
57 0x1A, 0x7C, 0xBE, 0x68, 0x82, 0x32, 0xCD, 0x56, 0x27, 0x4A,
58 0x36, 0x92, 0x81, 0x1B, 0x95, 0x47, 0xC1, 0x81, 0x26, 0x2C,
59 0x48, 0x49, 0xA3, 0x46, 0xEB, 0xC0, 0x34, 0x03, 0xEC, 0x74,
60 0x61, 0xDB, 0xA4, 0x7C, 0xC8, 0x46, 0x86, 0x19, 0x03, 0xA0,
61 0x48, 0xF9, 0x13, 0x85, 0x10, 0xC6, 0x1B, 0xD9, 0xF4, 0x48,
62 0x39, 0x80, 0x47, 0x13, 0xAB, 0x84, 0x84, 0x00, 0xF8, 0x48,
63 0x65, 0x8B, 0x56, 0x4C, 0x08, 0x22, 0x77, 0x8C, 0xA3, 0x87,
64 0x81, 0x8F, 0xB7, 0x49, 0x24, 0x01, 0xCC, 0x0A, 0x74, 0xE3,
65 0x40, 0xA7, 0x1A, 0x42, 0x9D, 0x24, 0x72, 0x02, 0x45, 0x11,
66 0x46, 0x89, 0x78, 0xA0, 0x24, 0xDB, 0x16, 0xE1, 0x8F, 0x91,
67 0x99, 0x53, 0xB2, 0x64, 0x11, 0x70, 0xC3, 0x0B, 0x9A, 0x1B,
68 0x2C, 0xC0, 0xB0, 0x38, 0xD4, 0x45, 0xAB, 0x00, 0xA9, 0x66,
69 0x73, 0x99, 0xB1, 0x02, 0x07, 0xCE, 0xD9, 0x08, 0xBC, 0xE8,
70 0x2C, 0x5C, 0xB2, 0xC4, 0xEA, 0x91, 0xB7, 0x74, 0xF3, 0x36,
71 0x40, 0xA6, 0xB7, 0xAF, 0xDF, 0xBF, 0x80, 0x03, 0x0B, 0x1E,
72 0x4C, 0xB8, 0xB0, 0xE1, 0xC3, 0x12, 0x12, 0x00, 0x00, 0x3B };
78 static int GetIndent ( char *buf
, int buflen
, int indent
, int comment
)
84 for ( i
= 0; i
< buflen
; i
++ )
89 if ( ( i
< buflen
) && ( buf
[++i
] == '*') ) comment
++;
90 if ( ( i
< buflen
) && ( buf
[i
+1] == '/') ) return indent
;
94 if ( ( i
< buflen
) && ( buf
[++i
] == '/') ) comment
--;
98 if ( ! comment
) indent
++;
102 if ( ! comment
) indent
--;
111 static int TruncateLine ( char *inbuf
, int inbuflen
, int tablen
, int fillcol
, FILE *wfile
)
113 int i
, colnum
= 0, bufpos
;
114 char *buf
= malloc(inbuflen
+20*tablen
+1);
116 fprintf(stderr
, "malloc() failed.\n");
121 for ( i
= 0; i
< inbuflen
; i
++ )
123 buf
[bufpos
] = inbuf
[i
];
124 if ( buf
[bufpos
] == ' ' ) colnum
= bufpos
+ 1;
125 else if ( buf
[bufpos
] == '\n' )
127 buf
[bufpos
+1] = '\0';
128 fputs ( buf
, wfile
);
132 else if ( buf
[bufpos
] == '\t' )
135 for ( j
= 0; j
< tablen
; j
++ ) buf
[bufpos
+j
] = ' ';
139 if ( ( bufpos
>= fillcol
) && colnum
)
141 buf
[colnum
-1] = '\0';
142 fputs ( buf
, wfile
);
143 putc ( '\n', wfile
);
145 strncpy ( buf
, buf
+ colnum
, bufpos
+ 1 );
155 int WriteCode ( struct listentry
*first
, char *code_srcdir
, char *code_dstdir
, int tablen
, int fillcol
)
158 /* char dirname[256];*/
160 struct listentry
*tclist
;
163 if ( code_srcdir
[strlen(code_srcdir
)-1] == '/' ) code_srcdir
[strlen(code_srcdir
)-1] = '\0';
165 opdir
= opendir ( code_srcdir
);
168 perror ( code_srcdir
);
172 for ( dp
= readdir ( opdir
); dp
!= NULL
; dp
= readdir ( opdir
) )
174 ctemp
= strrchr ( dp
->d_name
, '.' );
175 if ( ctemp
&& ( strcmp ( ctemp
, ".ttcn" ) == 0 ) )
177 char fullname
[MAXLEN
];
181 sprintf ( fullname
, "%s/%s", code_srcdir
, dp
->d_name
);
182 if ( ( rfile
= fopen ( fullname
, "rt") ) == NULL
)
188 while ( fgets ( inbuf
, sizeof ( inbuf
), rfile
) != NULL
)
190 ctemp
= strchr ( inbuf
, 't' );
191 if ( ctemp
&& ( strncmp ( ctemp
, "testcase", 8 ) == 0 ) )
194 while ( tclist
->next
!= NULL
)
196 ctemp
= strchr ( inbuf
, tclist
->tcname
[0] );
197 if ( ctemp
&& ( strncmp ( ctemp
, tclist
->tcname
, strlen ( tclist
->tcname
) ) == 0 ) )
199 int indent
= 0, comment
= 0;
200 int started
= 0, needed
= 1;
202 sprintf ( fullname
, "%s/%s.ttcn", code_dstdir
, tclist
->tcname
);
203 if ( ( wfile
= fopen ( fullname
, "wt") ) == NULL
)
209 indent
= GetIndent ( inbuf
, strlen ( inbuf
), indent
, comment
);
210 if ( indent
) started
= 1;
211 TruncateLine ( inbuf
, strlen ( inbuf
), tablen
, fillcol
, wfile
);
214 if ( fgets ( inbuf
, sizeof ( inbuf
), rfile
) == NULL
) break;
215 indent
= GetIndent ( inbuf
, strlen ( inbuf
), indent
, comment
);
216 if ( ! started
&& indent
) started
= 1;
217 if ( started
&& ! indent
) needed
= 0;
218 TruncateLine ( inbuf
, strlen ( inbuf
), tablen
, fillcol
, wfile
);
222 tclist
= tclist
->next
;
231 if ( closedir ( opdir
) != 0 )
233 perror ( code_srcdir
);
241 int WriteLog ( struct listentry
*first
, char *log_srcdir
, char *log_dstdir
)
243 char cwd
[MAXLEN
], command
[MAXLEN
], log_absrcdir
[MAXLEN
];
244 char oldname
[MAXLEN
], newname
[MAXLEN
], tempdir
[MAXLEN
];
247 struct listentry
*tclist
;
250 sprintf ( tempdir
, "%s/temp", log_dstdir
);
257 if ( getcwd ( cwd
, sizeof ( cwd
) ) == NULL
)
264 if ( ( log_srcdir
[0] == '.' ) && ( ( log_srcdir
[1] == '/' ) || ( log_srcdir
[1] == '\0' ) ) )
267 ctemp
= &log_srcdir
[1];
268 strcpy (log_absrcdir
, cwd
);
269 strcat (log_absrcdir
, ctemp
);
271 else strcpy ( log_absrcdir
, log_srcdir
);
273 if ( log_absrcdir
[strlen(log_absrcdir
)-1] == '/' ) log_absrcdir
[strlen(log_absrcdir
)-1] = '\0';
275 opdir
= opendir ( log_absrcdir
);
279 perror ( log_absrcdir
);
283 if ( chdir ( tempdir
) == -1 )
290 for ( dp
= readdir ( opdir
); dp
!= NULL
; dp
= readdir ( opdir
) )
294 ctemp
= strrchr ( dp
->d_name
, '.' );
295 if ( ctemp
&& ( strcmp ( ctemp
, ".log" ) == 0 ) )
297 sprintf ( command
, LOGFORMAT
" %s/%s >/dev/null 2>&1", log_absrcdir
, dp
->d_name
);
298 if ( system ( command
) == -1 )
309 if ( chdir ( cwd
) == -1 )
316 opdir
= opendir ( tempdir
);
324 for ( dp
= readdir ( opdir
); dp
!= NULL
; dp
= readdir ( opdir
) )
328 if ( ( strcmp ( dp
->d_name
, ".." ) == 0 ) || ( strcmp ( dp
->d_name
, "." ) == 0 ) ) continue;
331 while ( ( tclist
->next
!= NULL
) && !used
)
333 if ( strcmp ( dp
->d_name
, tclist
->tcname
) == 0 )
336 sprintf ( oldname
, "%s/temp/%s", log_dstdir
, tclist
->tcname
);
337 sprintf ( newname
, "%s/%s.ttcnlog", log_dstdir
, tclist
->tcname
);
338 if ( rename ( oldname
, newname
) == -1 )
345 tclist
= tclist
->next
;
350 sprintf ( oldname
, "%s/temp/%s", log_dstdir
, dp
->d_name
);
355 if ( remove ( tempdir
) == -1 )
361 if ( closedir ( opdir
) != 0 )
363 perror ( log_srcdir
);
371 int WriteDump ( struct listentry
*first
, char *dump_srcdir
, char *dump_dstdir
, int tablen
, int fillcol
)
375 char fullname
[MAXLEN
];
377 struct listentry
*tclist
;
380 if ( dump_srcdir
[strlen(dump_srcdir
)-1] == '/' ) dump_srcdir
[strlen(dump_srcdir
)-1] = '\0';
382 opdir
= opendir ( dump_srcdir
);
385 perror ( dump_srcdir
);
389 for ( dp
= readdir ( opdir
); dp
!= NULL
; dp
= readdir ( opdir
) )
391 if ( ( strcmp ( dp
->d_name
, ".." ) == 0 ) || ( strcmp ( dp
->d_name
, "." ) == 0 ) ) continue;
394 while ( tclist
->next
!= NULL
)
396 sprintf ( fullname
, "%s.dump", tclist
->tcname
);
397 if ( strcmp ( dp
->d_name
, fullname
) == 0 )
402 sprintf ( fullname
, "%s/%s", dump_srcdir
, dp
->d_name
);
403 if ( ( rfile
= fopen ( fullname
, "rt") ) == NULL
)
409 sprintf ( fullname
, "%s/%s.dump", dump_dstdir
, tclist
->tcname
);
410 if ( ( wfile
= fopen ( fullname
, "wt") ) == NULL
)
416 while ( fgets ( inbuf
, sizeof ( inbuf
), rfile
) != NULL
)
418 GetIndent ( inbuf
, strlen ( inbuf
), 0, 0 );
419 TruncateLine ( inbuf
, strlen ( inbuf
), tablen
, fillcol
, wfile
);
424 tclist
= tclist
->next
;
428 if ( closedir ( opdir
) != 0 )
430 perror ( dump_srcdir
);
438 int Genhtml ( struct listentry
*first
, char *title
, char *data_dstdir
)
441 char dirname
[MAXLEN
], filename
[MAXLEN
], buf
[1024];
443 struct listentry
*tclist
;
447 sprintf ( buf
, "%s.html", data_dstdir
);
448 if ( ( wfile
= fopen ( buf
, "wt" ) ) == NULL
)
454 ctemp
= strrchr ( data_dstdir
, '/' );
455 strcpy ( dirname
, ctemp
+ 1 );
457 fprintf(wfile
, "<html>\n"
459 "<title>TTCN-3 Test report</title>\n"
462 " <IMG src=\"%s/logo.gif\">\n"
463 " <script type=\"text/javascript\">\n", dirname
);
465 fputs ( "adatok = new Array (", wfile
);
468 while ( tclist
->next
!= NULL
)
470 sprintf ( buf
, "\"%s\", ", tclist
->tcname
);
471 fputs ( buf
, wfile
);
473 sprintf ( filename
, "%s/%s.short", data_dstdir
, tclist
->tcname
);
474 sprintf ( buf
, "\"./%s/%s.short\", ", dirname
, tclist
->tcname
);
475 if ( access ( filename
, R_OK
) == 0 ) fputs ( buf
, wfile
);
476 else fputs ( "\"\", ", wfile
);
478 sprintf ( filename
, "%s/%s.long", data_dstdir
, tclist
->tcname
);
479 sprintf ( buf
, "\"./%s/%s.long\", ", dirname
, tclist
->tcname
);
480 if ( access ( filename
, R_OK
) == 0 ) fputs ( buf
, wfile
);
481 else fputs ( "\"\", ", wfile
);
483 sprintf ( filename
, "%s/%s.ttcn", data_dstdir
, tclist
->tcname
);
484 sprintf ( buf
, "\"./%s/%s.ttcn\", ", dirname
, tclist
->tcname
);
485 if ( access ( filename
, R_OK
) == 0 ) fputs ( buf
, wfile
);
486 else fputs ( "\"\", ", wfile
);
488 sprintf ( filename
, "%s/%s.ttcnlog", data_dstdir
, tclist
->tcname
);
489 sprintf ( buf
, "\"./%s/%s.ttcnlog\", ", dirname
, tclist
->tcname
);
490 if ( access ( filename
, R_OK
) == 0 ) fputs ( buf
, wfile
);
491 else fputs ( "\"\", ", wfile
);
493 sprintf ( filename
, "%s/%s.dump", data_dstdir
, tclist
->tcname
);
494 sprintf ( buf
, "\"./%s/%s.dump\",\n", dirname
, tclist
->tcname
);
495 if ( access ( filename
, R_OK
) == 0 ) fputs ( buf
, wfile
);
496 else fputs ( "\"\",\n", wfile
);
498 tclist
= tclist
->next
;
501 fprintf ( wfile
, "\"\" );\nmtitle=\"Test suite: %s\";\n", title
);
503 fputs (" egyelem=6;\n"
504 " tcszam=(adatok.length-1) / egyelem;\n"
505 " kijelolt=new Array(1,1,1,1);\n"
507 " function tcChange()\n"
509 " document.myForm.showOption.length=0;\n"
510 " index=document.myForm.testchoose.selectedIndex;\n"
513 " if (adatok[index*egyelem+2]!=\"\")\n"
515 " elem = new Option(\"Detailed description\", adatok[index*egyelem+2], false, kijelolt[0]);\n"
516 " document.myForm.showOption.options[document.myForm.showOption.length]=elem;\n"
518 " if (adatok[index*egyelem+3]!=\"\")\n"
520 " elem = new Option(\"TTCN-3 code\", adatok[index*egyelem+3], false, kijelolt[1]);\n"
521 " document.myForm.showOption.options[document.myForm.showOption.length]=elem;\n"
523 " if (adatok[index*egyelem+4]!=\"\")\n"
525 " elem = new Option(\"TTCN-3 executor's log\", adatok[index*egyelem+4], false, kijelolt[2]);\n"
526 " document.myForm.showOption.options[document.myForm.showOption.length]=elem;\n"
528 " if (adatok[index*egyelem+5]!=\"\")\n"
530 " elem = new Option(\"Other type of log\", adatok[index*egyelem+5], false, kijelolt[3]);\n"
531 " document.myForm.showOption.options[document.myForm.showOption.length]=elem;\n"
536 " function goNext()\n"
538 " if (document.myForm.testchoose.selectedIndex<document.myForm.testchoose.length-1)\n"
540 " itemsSelected();\n"
541 " document.myForm.testchoose.selectedIndex++;\n"
546 " function goPrev()\n"
548 " if (document.myForm.testchoose.selectedIndex>0)\n"
550 " itemsSelected();\n"
551 " document.myForm.testchoose.selectedIndex--;\n"
556 " function itemsSelected()\n"
558 " if (document.myForm.showOption.length)\n"
560 " for (b=0;b<4;b++)\n"
561 " for (i=0;i<document.myForm.showOption.length;i++)\n"
562 " if (document.myForm.showOption.options[i].value==adatok[index*egyelem+b+2])\n"
564 " if (!document.myForm.showOption.options[i].selected)\n"
573 " function windShow()\n"
575 " index=document.myForm.testchoose.selectedIndex;\n"
577 " for (i=0; i<document.myForm.showOption.length; i++)\n"
578 " if (document.myForm.showOption.options[i].selected) selectnumb++;\n"
579 " if (selectnumb>0)\n"
581 " mywin=window.open(\"\",index,\"toolbar,width=180,resizable=yes,scrollbars=no\");\n"
582 " mywin.document.write(\"<html> <HEAD> <TITLE> Test Case: \"+document.myForm.testchoose.options[index].text+\"</TITLE> </HEAD> <frameset rows=\\\"\");\n"
584 " for (i=0; i<selectnumb; i++)\n"
585 " csillag=\"*,\"+csillag;\n"
586 " mywin.document.write(csillag+\"\\\">\");\n"
587 " for (i=0; i<document.myForm.showOption.length; i++)\n"
588 " if (document.myForm.showOption.options[i].selected)\n"
589 " mywin.document.write(\"<frame src=\\\"\"+document.myForm.showOption.options[i].value+\"\\\">\");\n"
590 " mywin.document.write(\"</frameset></html>\");\n"
591 " mywin.document.close();\n"
595 " function summaryShow()\n"
597 " mywin=window.open(\"\",index,\"toolbar,resizable=yes,scrollbars=yes\");\n"
598 " mywin.document.writeln(\"<html> <HEAD> <TITLE> Summary </TITLE> </HEAD><body>\");\n"
599 " mywin.document.writeln(\"<br>\");\n"
600 " mywin.document.write(\"<P align=\\\"center\\\"><font size=\\\"10\\\">\");\n"
601 " mywin.document.write(mtitle);\n"
602 " mywin.document.writeln(\"</P>\");\n"
603 " mywin.document.write(\"<font size=\\\"5\\\">\");\n"
604 " mywin.document.writeln(\"\");\n"
605 "mywin.document.writeln(\"<hr>\");\n"
606 "mywin.document.writeln(\"<br>\");\n"
607 " mywin.document.write(\"<table border=\\\"2\\\" cellpading=\\\"5\\\" cellspacing=\\\"2\\\"><tr><th scope=\\\"col\\\">  Test Case  </th><th scope=\\\"col\\\">  Short Description  </th><th scope=\\\"col\\\">  Verdict  </th>\");\n", wfile
);
610 while ( tclist
->next
!= NULL
)
612 sprintf ( buf
, "mywin.document.writeln(\"<tr><td>  %s  </td><td>", tclist
->tcname
);
613 fputs ( buf
, wfile
);
615 sprintf ( filename
, "%s/%s.short", data_dstdir
, tclist
->tcname
);
617 if ( ( rfile
= fopen ( filename
, "rt" ) ) == NULL
) fputs ( "No description found!", wfile
);
622 while ( ( c
= getc ( rfile
) ) != EOF
)
624 if ( c
== '\n' ) putc ( ' ', wfile
);
627 putc ( '\\', wfile
);
630 else putc ( c
, wfile
);
634 fputs ( "</td><td ALIGN=\\\"CENTER\\\">  ", wfile
);
636 sprintf ( filename
, "%s/%s.ttcnlog", data_dstdir
, tclist
->tcname
);
637 if ( ( rfile
= fopen ( filename
, "rt" ) ) == NULL
) fputs ( "none", wfile
);
640 while ( fgets ( buf
, sizeof ( buf
), rfile
) != NULL
)
642 ctemp
= strchr ( buf
, 'V' );
643 while ( ctemp
!= NULL
)
645 if ( strncmp ( ctemp
, "Verdict: ", 9 ) == 0 )
647 if ( ctemp
[strlen(ctemp
)-1] == '\n' ) ctemp
[strlen(ctemp
)-1] = '\0';
648 fputs ( ctemp
+ 9, wfile
);
651 else ctemp
= strchr ( ctemp
+1, 'V' );
657 fputs ( "  </td></tr>\");\n", wfile
);
659 tclist
= tclist
->next
;
662 tval
= time ( NULL
);
663 ctemp
= ctime ( &tval
);
664 if ( ctemp
[strlen(ctemp
)-1] == '\n' ) ctemp
[strlen(ctemp
)-1] = '\0';
666 fprintf(wfile
, " mywin.document.write(\"</tr></table>\");\n"
667 " mywin.document.writeln(\"<br>\");\n"
668 " mywin.document.write(\"<font size=\\\"3\\\">\");\n"
669 " mywin.document.write(\"Date : \")\n"
670 " mywin.document.writeln(\"%s\");\n"
671 " mywin.document.write(\"</body></html>\");\n"
672 " mywin.document.close();\n"
675 " document.write(\"<P align=\\\"center\\\"><font size=\\\"10\\\">\");\n"
676 " document.write(mtitle);\n"
677 " document.write(\"<font size=\\\"5\\\">\");\n"
680 " <form name=\"myForm\">\n"
681 " <hr><br><SELECT size=\"12\" NAME=\"testchoose\" onChange=\"itemsSelected();tcChange()\">\n"
682 " <OPTION> Blank testcase Name ....................\n"
684 " <SELECT multiple size=\"12\" NAME=\"showOption\" >\n"
685 " <OPTION SELECTED> Blank options Name ........................................\n"
688 " <input type=\"button\" name=\"PrevButt\" value=\"Previous\" onClick=\"goPrev()\">\n"
689 " <input type=\"button\" name=\"nextButt\" value=\"Next\" onClick=\"goNext()\">\n"
690 " <input type=\"button\" name=\"newWind\" value=\"Show\" onClick=\"windShow()\">\n"
691 " <input type=\"button\" name=\"summary\" value=\"Summary\" onClick=\"summaryShow()\">\n"
694 " <script type=\"text/javascript\">\n"
695 " for (i=0; i<tcszam; i++)\n"
697 " elem = new Option(adatok[i*egyelem], \"\", false, false);\n"
698 " document.myForm.testchoose.options[i]=elem;\n"
700 " document.myForm.testchoose.selectedIndex=0;\n"
702 " document.writeln(tcszam);"
704 " Testcases altogether <p></p>\n"
705 " <font size=-1>Date: %s <p></p>\n"
707 "</html>\n", ctemp
, ctemp
);
711 sprintf ( filename
, "%s/logo.gif", data_dstdir
);
712 if ( ( wfile
= fopen ( filename
, "wt" ) ) == NULL
)
718 fwrite ( &logo
, sizeof ( logo
), 1, wfile
);
This page took 0.048113 seconds and 5 git commands to generate.