PageRenderTime 61ms CodeModel.GetById 54ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/js/lib/Socket.IO-node/support/expresso/deps/jscoverage/instrument-js.h

http://github.com/onedayitwillmake/RealtimeMultiplayerNodeJs
C++ Header | 81 lines | 38 code | 23 blank | 20 comment | 0 complexity | b2e36f634a275f1014c8de45e6e65c69 MD5 | raw file
 1/*
 2    instrument-js.h - JavaScript instrumentation routines
 3    Copyright (C) 2007, 2008 siliconforks.com
 4
 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/* ISO C99 specifies that C++ code must define this to get UINT16_MAX etc. */
24#define __STDC_LIMIT_MACROS
25#include <stdint.h>
26
27#include "stream.h"
28#include "util.h"
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34enum FileType {
35  FILE_TYPE_JS,
36  FILE_TYPE_HTML,
37  FILE_TYPE_OTHER
38};
39
40extern bool jscoverage_mozilla;
41
42void jscoverage_set_js_version(const char * version);
43
44void jscoverage_init(void);
45
46void jscoverage_cleanup(void);
47
48void jscoverage_instrument_js(const char * id, const uint16_t * characters, size_t num_characters, Stream * output);
49
50void jscoverage_copy_resources(const char * destination_directory);
51
52typedef struct Coverage Coverage;
53
54typedef struct FileCoverage {
55  char * id;
56
57  int * coverage_lines;
58  char ** source_lines;
59
60  /* SpiderMonkey uses uint32 for array lengths */
61  uint32_t num_coverage_lines;
62  uint32_t num_source_lines;
63} FileCoverage;
64
65Coverage * Coverage_new(void);
66
67void Coverage_delete(Coverage * coverage);
68
69typedef void (*CoverageForeachFunction) (const FileCoverage * file_coverage, int i, void * p);
70
71void Coverage_foreach_file(Coverage * coverage, CoverageForeachFunction f, void * p);
72
73int jscoverage_parse_json(Coverage * coverage, const uint8_t * data, size_t length) __attribute__((warn_unused_result));
74
75void jscoverage_write_source(const char * id, const uint16_t * characters, size_t num_characters, Stream * output);
76
77#ifdef __cplusplus
78}
79#endif
80
81#endif /* INSTRUMENT_JS_H_ */