Skip to content

Commit 93a0668

Browse files
Extend GCMole to also cover cctest files.
[email protected] Review URL: https://codereview.chromium.org/240933002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
1 parent 4411a08 commit 93a0668

File tree

3 files changed

+53
-34
lines changed

3 files changed

+53
-34
lines changed

test/cctest/cctest.gyp

+6-6
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
'include_dirs': [
4242
'../../src',
4343
],
44-
'sources': [
44+
'sources': [ ### gcmole(all) ###
4545
'<(generated_file)',
4646
'cctest.cc',
4747
'gay-fixed.cc',
@@ -125,7 +125,7 @@
125125
],
126126
'conditions': [
127127
['v8_target_arch=="ia32"', {
128-
'sources': [
128+
'sources': [ ### gcmole(arch:ia32) ###
129129
'test-assembler-ia32.cc',
130130
'test-code-stubs.cc',
131131
'test-code-stubs-ia32.cc',
@@ -136,7 +136,7 @@
136136
],
137137
}],
138138
['v8_target_arch=="x64"', {
139-
'sources': [
139+
'sources': [ ### gcmole(arch:x64) ###
140140
'test-assembler-x64.cc',
141141
'test-code-stubs.cc',
142142
'test-code-stubs-x64.cc',
@@ -147,7 +147,7 @@
147147
],
148148
}],
149149
['v8_target_arch=="arm"', {
150-
'sources': [
150+
'sources': [ ### gcmole(arch:arm) ###
151151
'test-assembler-arm.cc',
152152
'test-code-stubs.cc',
153153
'test-code-stubs-arm.cc',
@@ -156,7 +156,7 @@
156156
],
157157
}],
158158
['v8_target_arch=="arm64"', {
159-
'sources': [
159+
'sources': [ ### gcmole(arch:arm64) ###
160160
'test-utils-arm64.cc',
161161
'test-assembler-arm64.cc',
162162
'test-code-stubs.cc',
@@ -168,7 +168,7 @@
168168
],
169169
}],
170170
['v8_target_arch=="mipsel"', {
171-
'sources': [
171+
'sources': [ ### gcmole(arch:mipsel) ###
172172
'test-assembler-mips.cc',
173173
'test-code-stubs.cc',
174174
'test-code-stubs-mips.cc',

test/cctest/test-heap.cc

+33-21
Original file line numberDiff line numberDiff line change
@@ -756,6 +756,7 @@ TEST(JSArray) {
756756
Handle<JSFunction> function = Handle<JSFunction>::cast(fun_obj);
757757

758758
// Allocate the object.
759+
Handle<Object> element;
759760
Handle<JSObject> object = factory->NewJSObject(function);
760761
Handle<JSArray> array = Handle<JSArray>::cast(object);
761762
// We just initialized the VM, no heap allocation failure yet.
@@ -770,7 +771,8 @@ TEST(JSArray) {
770771
// array[length] = name.
771772
JSReceiver::SetElement(array, 0, name, NONE, SLOPPY).Check();
772773
CHECK_EQ(Smi::FromInt(1), array->length());
773-
CHECK_EQ(*i::Object::GetElement(isolate, array, 0).ToHandleChecked(), *name);
774+
element = i::Object::GetElement(isolate, array, 0).ToHandleChecked();
775+
CHECK_EQ(*element, *name);
774776

775777
// Set array length with larger than smi value.
776778
Handle<Object> length =
@@ -787,9 +789,10 @@ TEST(JSArray) {
787789
uint32_t new_int_length = 0;
788790
CHECK(array->length()->ToArrayIndex(&new_int_length));
789791
CHECK_EQ(static_cast<double>(int_length), new_int_length - 1);
790-
CHECK_EQ(*i::Object::GetElement(isolate, array, int_length).ToHandleChecked(),
791-
*name);
792-
CHECK_EQ(*i::Object::GetElement(isolate, array, 0).ToHandleChecked(), *name);
792+
element = Object::GetElement(isolate, array, int_length).ToHandleChecked();
793+
CHECK_EQ(*element, *name);
794+
element = Object::GetElement(isolate, array, 0).ToHandleChecked();
795+
CHECK_EQ(*element, *name);
793796
}
794797

795798

@@ -817,18 +820,23 @@ TEST(JSObjectCopy) {
817820
JSReceiver::SetElement(obj, 1, second, NONE, SLOPPY).Check();
818821

819822
// Make the clone.
823+
Handle<Object> value1, value2;
820824
Handle<JSObject> clone = JSObject::Copy(obj);
821825
CHECK(!clone.is_identical_to(obj));
822826

823-
CHECK_EQ(*i::Object::GetElement(isolate, obj, 0).ToHandleChecked(),
824-
*i::Object::GetElement(isolate, clone, 0).ToHandleChecked());
825-
CHECK_EQ(*i::Object::GetElement(isolate, obj, 1).ToHandleChecked(),
826-
*i::Object::GetElement(isolate, clone, 1).ToHandleChecked());
827+
value1 = Object::GetElement(isolate, obj, 0).ToHandleChecked();
828+
value2 = Object::GetElement(isolate, clone, 0).ToHandleChecked();
829+
CHECK_EQ(*value1, *value2);
830+
value1 = Object::GetElement(isolate, obj, 1).ToHandleChecked();
831+
value2 = Object::GetElement(isolate, clone, 1).ToHandleChecked();
832+
CHECK_EQ(*value1, *value2);
827833

828-
CHECK_EQ(*Object::GetProperty(obj, first).ToHandleChecked(),
829-
*Object::GetProperty(clone, first).ToHandleChecked());
830-
CHECK_EQ(*Object::GetProperty(obj, second).ToHandleChecked(),
831-
*Object::GetProperty(clone, second).ToHandleChecked());
834+
value1 = Object::GetProperty(obj, first).ToHandleChecked();
835+
value2 = Object::GetProperty(clone, first).ToHandleChecked();
836+
CHECK_EQ(*value1, *value2);
837+
value1 = Object::GetProperty(obj, second).ToHandleChecked();
838+
value2 = Object::GetProperty(clone, second).ToHandleChecked();
839+
CHECK_EQ(*value1, *value2);
832840

833841
// Flip the values.
834842
JSReceiver::SetProperty(clone, first, two, NONE, SLOPPY).Check();
@@ -837,15 +845,19 @@ TEST(JSObjectCopy) {
837845
JSReceiver::SetElement(clone, 0, second, NONE, SLOPPY).Check();
838846
JSReceiver::SetElement(clone, 1, first, NONE, SLOPPY).Check();
839847

840-
CHECK_EQ(*i::Object::GetElement(isolate, obj, 1).ToHandleChecked(),
841-
*i::Object::GetElement(isolate, clone, 0).ToHandleChecked());
842-
CHECK_EQ(*i::Object::GetElement(isolate, obj, 0).ToHandleChecked(),
843-
*i::Object::GetElement(isolate, clone, 1).ToHandleChecked());
844-
845-
CHECK_EQ(*Object::GetProperty(obj, second).ToHandleChecked(),
846-
*Object::GetProperty(clone, first).ToHandleChecked());
847-
CHECK_EQ(*Object::GetProperty(obj, first).ToHandleChecked(),
848-
*Object::GetProperty(clone, second).ToHandleChecked());
848+
value1 = Object::GetElement(isolate, obj, 1).ToHandleChecked();
849+
value2 = Object::GetElement(isolate, clone, 0).ToHandleChecked();
850+
CHECK_EQ(*value1, *value2);
851+
value1 = Object::GetElement(isolate, obj, 0).ToHandleChecked();
852+
value2 = Object::GetElement(isolate, clone, 1).ToHandleChecked();
853+
CHECK_EQ(*value1, *value2);
854+
855+
value1 = Object::GetProperty(obj, second).ToHandleChecked();
856+
value2 = Object::GetProperty(clone, first).ToHandleChecked();
857+
CHECK_EQ(*value1, *value2);
858+
value1 = Object::GetProperty(obj, first).ToHandleChecked();
859+
value2 = Object::GetProperty(clone, second).ToHandleChecked();
860+
CHECK_EQ(*value1, *value2);
849861
}
850862

851863

tools/gcmole/gcmole.lua

+14-7
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ function InvokeClangPluginForEachFile(filenames, cfg, func)
116116
cfg.arch_define)
117117
for _, filename in ipairs(filenames) do
118118
log("-- %s", filename)
119-
local action = cmd_line .. " src/" .. filename .. " 2>&1"
119+
local action = cmd_line .. " " .. filename .. " 2>&1"
120120
if FLAGS.verbose then print('popen ', action) end
121121
local pipe = io.popen(action)
122122
func(filename, pipe:lines())
@@ -129,19 +129,26 @@ end
129129
-- GYP file parsing
130130

131131
local function ParseGYPFile()
132-
local f = assert(io.open("tools/gyp/v8.gyp"), "failed to open GYP file")
133-
local gyp = f:read('*a')
134-
f:close()
132+
local gyp = ""
133+
local gyp_files = { "tools/gyp/v8.gyp", "test/cctest/cctest.gyp" }
134+
for i = 1, #gyp_files do
135+
local f = assert(io.open(gyp_files[i]), "failed to open GYP file")
136+
local t = f:read('*a')
137+
gyp = gyp .. t
138+
f:close()
139+
end
135140

136141
local result = {}
137142

138143
for condition, sources in
139144
gyp:gmatch "'sources': %[.-### gcmole%((.-)%) ###(.-)%]" do
140-
local files = {}
145+
if result[condition] == nil then result[condition] = {} end
141146
for file in sources:gmatch "'%.%./%.%./src/([^']-%.cc)'" do
142-
table.insert(files, file)
147+
table.insert(result[condition], "src/" .. file)
148+
end
149+
for file in sources:gmatch "'(test-[^']-%.cc)'" do
150+
table.insert(result[condition], "test/cctest/" .. file)
143151
end
144-
result[condition] = files
145152
end
146153

147154
return result

0 commit comments

Comments
 (0)