/[jscoverage]/trunk/instrument-js.h
ViewVC logotype

Annotation of /trunk/instrument-js.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 505 - (hide annotations)
Sat Jan 2 04:55:54 2010 UTC (9 years, 4 months ago) by siliconforks
File MIME type: text/plain
File size: 2623 byte(s)
Update copyright year.

1 siliconforks 2 /*
2     instrument-js.h - JavaScript instrumentation routines
3 siliconforks 505 Copyright (C) 2007, 2008, 2009, 2010 siliconforks.com
4 siliconforks 2
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9    
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13     GNU General Public License for more details.
14    
15     You should have received a copy of the GNU General Public License along
16     with this program; if not, write to the Free Software Foundation, Inc.,
17     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18     */
19    
20     #ifndef INSTRUMENT_JS_H_
21     #define INSTRUMENT_JS_H_
22    
23 siliconforks 399 /* ISO C99 specifies that C++ code must define this to get UINT16_MAX etc. */
24     #define __STDC_LIMIT_MACROS
25 siliconforks 179 #include <stdint.h>
26    
27 siliconforks 92 #include "stream.h"
28 siliconforks 116 #include "util.h"
29 siliconforks 2
30 siliconforks 399 #ifdef __cplusplus
31     extern "C" {
32     #endif
33    
34 siliconforks 444 #define JSCOVERAGE_INSTRUMENTED_HEADER "/* automatically generated by JSCoverage - do not edit */\n"
35     #define JSCOVERAGE_INSTRUMENTED_HEADER_LENGTH (sizeof(JSCOVERAGE_INSTRUMENTED_HEADER) - 1)
36    
37 siliconforks 2 enum FileType {
38     FILE_TYPE_JS,
39     FILE_TYPE_HTML,
40 siliconforks 124 FILE_TYPE_OTHER
41 siliconforks 2 };
42    
43 siliconforks 431 enum JSCoverageMode {
44     JSCOVERAGE_NORMAL,
45     JSCOVERAGE_MOZILLA,
46     JSCOVERAGE_NO_BROWSER
47     };
48     extern enum JSCoverageMode jscoverage_mode;
49 siliconforks 361
50 siliconforks 339 void jscoverage_set_js_version(const char * version);
51    
52 siliconforks 2 void jscoverage_init(void);
53    
54     void jscoverage_cleanup(void);
55    
56 siliconforks 179 void jscoverage_instrument_js(const char * id, const uint16_t * characters, size_t num_characters, Stream * output);
57 siliconforks 2
58 siliconforks 116 void jscoverage_copy_resources(const char * destination_directory);
59    
60     typedef struct Coverage Coverage;
61    
62     typedef struct FileCoverage {
63     char * id;
64    
65 siliconforks 179 int * coverage_lines;
66     char ** source_lines;
67 siliconforks 116
68 siliconforks 179 /* SpiderMonkey uses uint32 for array lengths */
69     uint32_t num_coverage_lines;
70     uint32_t num_source_lines;
71 siliconforks 116 } FileCoverage;
72    
73     Coverage * Coverage_new(void);
74    
75     void Coverage_delete(Coverage * coverage);
76    
77     typedef void (*CoverageForeachFunction) (const FileCoverage * file_coverage, int i, void * p);
78    
79     void Coverage_foreach_file(Coverage * coverage, CoverageForeachFunction f, void * p);
80    
81     int jscoverage_parse_json(Coverage * coverage, const uint8_t * data, size_t length) __attribute__((warn_unused_result));
82    
83 siliconforks 179 void jscoverage_write_source(const char * id, const uint16_t * characters, size_t num_characters, Stream * output);
84    
85 siliconforks 399 #ifdef __cplusplus
86     }
87     #endif
88    
89 siliconforks 398 #endif /* INSTRUMENT_JS_H_ */

  ViewVC Help
Powered by ViewVC 1.1.24