зеркало из https://github.com/mozilla/gecko-dev.git
Bug 753022 - Remove obsolete xpcshell Marionette tests, r=jgriffin
This commit is contained in:
Родитель
4f6033b3e7
Коммит
fb0015e750
|
@ -13,9 +13,6 @@ ifdef ENABLE_MARIONETTE
|
|||
DIRS += components \
|
||||
atoms \
|
||||
$(NULL)
|
||||
ifdef ENABLE_TESTS
|
||||
DIRS += tests
|
||||
endif
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
# You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DEPTH = ../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
relativesrcdir = testing/marionette/tests
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = test_marionette
|
||||
|
||||
XPCSHELL_TESTS = unit
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
|
@ -1,11 +0,0 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cu = Components.utils;
|
||||
const Cr = Components.results;
|
||||
|
||||
Cu.import("resource:///modules/devtools/dbg-server.jsm");
|
||||
Cu.import("resource:///modules/devtools/dbg-client.jsm");
|
|
@ -1,53 +0,0 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
function run_test()
|
||||
{
|
||||
//DebuggerServer.addActors("resource:///modules/marionette-actors.js");
|
||||
//DebuggerServer.init();
|
||||
|
||||
add_test(test_error);
|
||||
|
||||
run_next_test();
|
||||
}
|
||||
function test_error()
|
||||
{
|
||||
//DebuggerServer.openListener(2828, true);
|
||||
do_test_pending();
|
||||
received = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if (received) {
|
||||
do_check_eq(aPacket.from, id);
|
||||
if(aPacket.error == undefined) {
|
||||
do_throw("Expected error, instead received 'done' packet!");
|
||||
transport.close();
|
||||
}
|
||||
else {
|
||||
transport.close();
|
||||
}
|
||||
}
|
||||
else {
|
||||
received = true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "nonExistent",
|
||||
});
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
function run_test()
|
||||
{
|
||||
//DebuggerServer.addActors("resource:///modules/marionette-actors.js");
|
||||
//DebuggerServer.init();
|
||||
|
||||
add_test(test_execute);
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
function test_execute()
|
||||
{
|
||||
//DebuggerServer.openListener(2828, true);
|
||||
do_test_pending();
|
||||
got_session = false;
|
||||
received = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if(!got_session) {
|
||||
got_session=true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "newSession",
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (received) {
|
||||
do_check_eq(aPacket.from, id);
|
||||
if(aPacket.value == "3") {
|
||||
transport.send({to: id,
|
||||
type: "executeScript",
|
||||
value: "return 5+arguments[0];",
|
||||
args: [1],
|
||||
});
|
||||
}
|
||||
if(aPacket.value == "6") {
|
||||
transport.send({to: id,
|
||||
type: "deleteSession"
|
||||
});
|
||||
transport.close();
|
||||
}
|
||||
if(aPacket.error != undefined) {
|
||||
do_throw("Received error: " + aPacket.error);
|
||||
transport.close();
|
||||
}
|
||||
}
|
||||
else {
|
||||
received = true;
|
||||
do_check_eq('session', aPacket.value);
|
||||
transport.send({to: id,
|
||||
type: "executeScript",
|
||||
value: "alert('asdf'); return 2+1;",
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
delete transport;
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
|
@ -1,193 +0,0 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
function run_test()
|
||||
{
|
||||
add_test(test_executeAsync);
|
||||
add_test(test_executeAsyncTimeout);
|
||||
add_test(test_executeAsyncUnload); //TODO: fix unload listener
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
function test_executeAsync()
|
||||
{
|
||||
do_test_pending();
|
||||
got_session = false;
|
||||
received = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if(!got_session) {
|
||||
got_session=true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "newSession",
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (received) {
|
||||
do_check_eq(aPacket.from, id);
|
||||
if(aPacket.ok == true) {
|
||||
transport.send({to: id,
|
||||
type: "executeAsyncScript",
|
||||
value: "arguments[arguments.length - 1](5+1);",
|
||||
});
|
||||
}
|
||||
else if(aPacket.value == "6") {
|
||||
transport.send({to: id,
|
||||
type: "deleteSession",
|
||||
});
|
||||
transport.close();
|
||||
}
|
||||
else if(aPacket.error != undefined) {
|
||||
do_throw("Received error: " + aPacket.error);
|
||||
transport.close();
|
||||
}
|
||||
}
|
||||
else {
|
||||
received = true;
|
||||
do_check_eq('session', aPacket.value);
|
||||
transport.send({to: id,
|
||||
type: "setScriptTimeout",
|
||||
value: "2000",
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
delete transport;
|
||||
run_next_test();
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
||||
|
||||
function test_executeAsyncTimeout()
|
||||
{
|
||||
do_test_pending();
|
||||
got_session = false;
|
||||
received = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if(!got_session) {
|
||||
got_session=true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "newSession",
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (received) {
|
||||
do_check_eq(aPacket.from, id);
|
||||
if(aPacket.ok == true) {
|
||||
transport.send({to: id,
|
||||
type: "executeAsyncScript",
|
||||
value: "window.setTimeout(arguments[arguments.length - 1], 5000, 6);",
|
||||
});
|
||||
}
|
||||
else if(aPacket.value == "6") {
|
||||
do_throw("Should have timed out!");
|
||||
transport.close();
|
||||
}
|
||||
else if(aPacket.error != undefined) {
|
||||
do_check_eq(aPacket.error.message, "timed out");
|
||||
do_check_eq(aPacket.error.status, 28);
|
||||
transport.close();
|
||||
}
|
||||
}
|
||||
else {
|
||||
received = true;
|
||||
do_check_eq('session', aPacket.value);
|
||||
transport.send({to: id,
|
||||
type: "setScriptTimeout",
|
||||
value: "2000",
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
delete transport;
|
||||
run_next_test();
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
||||
|
||||
function test_executeAsyncUnload()
|
||||
{
|
||||
do_test_pending();
|
||||
got_session = false;
|
||||
received = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if(!got_session) {
|
||||
got_session=true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "newSession",
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (received) {
|
||||
do_check_eq(aPacket.from, id);
|
||||
if(aPacket.ok == true) {
|
||||
transport.send({to: id,
|
||||
type: "executeAsyncScript",
|
||||
value: "window.location.reload();",
|
||||
});
|
||||
}
|
||||
else if(aPacket.value == "6") {
|
||||
do_throw("Should have thrown unload error!");
|
||||
transport.close();
|
||||
}
|
||||
else if(aPacket.error != undefined) {
|
||||
do_check_eq(aPacket.error.status, 17);
|
||||
transport.close();
|
||||
}
|
||||
}
|
||||
else {
|
||||
received = true;
|
||||
do_check_eq('session', aPacket.value);
|
||||
transport.send({to: id,
|
||||
type: "setScriptTimeout",
|
||||
value: "2000",
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
delete transport;
|
||||
run_next_test();
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
|
@ -1,365 +0,0 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
function run_test()
|
||||
{
|
||||
add_test(test_execute);
|
||||
add_test(test_execute_async);
|
||||
add_test(test_execute_async_timeout);
|
||||
add_test(test_execute_chrome);
|
||||
add_test(test_execute_async_chrome);
|
||||
add_test(test_execute_async_timeout_chrome);
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
function test_execute()
|
||||
{
|
||||
do_test_pending();
|
||||
got_session = false;
|
||||
received = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if(!got_session) {
|
||||
got_session=true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "newSession",
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (received) {
|
||||
do_check_eq(aPacket.from, id);
|
||||
do_check_eq(aPacket.value.passed, 1);
|
||||
do_check_eq(aPacket.value.failed, 0);
|
||||
transport.close();
|
||||
}
|
||||
else {
|
||||
received = true;
|
||||
do_check_eq('mobile', aPacket.value);
|
||||
transport.send({to: id,
|
||||
type: "executeJSScript",
|
||||
value: "Marionette.is(1,1, 'should return 1'); Marionette.finish();",
|
||||
timeout: false
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
delete transport;
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
||||
|
||||
function test_execute_async()
|
||||
{
|
||||
do_test_pending();
|
||||
got_session = false;
|
||||
received = false;
|
||||
received2 = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if(!got_session) {
|
||||
got_session=true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "newSession",
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (received) {
|
||||
if(received2) {
|
||||
do_check_eq(aPacket.from, id);
|
||||
do_check_eq(aPacket.value.passed, 1);
|
||||
do_check_eq(aPacket.value.failed, 0);
|
||||
transport.close();
|
||||
}
|
||||
else {
|
||||
received2 = true;
|
||||
transport.send({to: id,
|
||||
type: "executeJSScript",
|
||||
value: "Marionette.is(1,1, 'should return 1'); Marionette.finish();",
|
||||
timeout: true
|
||||
});
|
||||
}
|
||||
}
|
||||
else {
|
||||
received = true;
|
||||
do_check_eq('mobile', aPacket.value);
|
||||
transport.send({to: id,
|
||||
type: "setScriptTimeout",
|
||||
value: "2000",
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
delete transport;
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
||||
|
||||
function test_execute_async_timeout()
|
||||
{
|
||||
do_test_pending();
|
||||
got_session = false;
|
||||
received = false;
|
||||
received2 = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if(!got_session) {
|
||||
got_session=true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "newSession",
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (received) {
|
||||
if(received2) {
|
||||
do_check_eq(aPacket.from, id);
|
||||
do_check_eq(aPacket.error.status, 28);
|
||||
transport.close();
|
||||
}
|
||||
else {
|
||||
received2 = true;
|
||||
transport.send({to: id,
|
||||
type: "executeJSScript",
|
||||
value: "Marionette.is(1,1, 'should return 1');",
|
||||
timeout: true
|
||||
});
|
||||
}
|
||||
}
|
||||
else {
|
||||
received = true;
|
||||
do_check_eq('mobile', aPacket.value);
|
||||
transport.send({to: id,
|
||||
type: "setScriptTimeout",
|
||||
value: "2000",
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
delete transport;
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
||||
|
||||
function test_execute_chrome()
|
||||
{
|
||||
do_test_pending();
|
||||
got_session = false;
|
||||
got_context = false;
|
||||
received = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if(!got_session) {
|
||||
got_session=true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "newSession",
|
||||
});
|
||||
}
|
||||
else if (!got_context) {
|
||||
got_context = true;
|
||||
do_check_eq('mobile', aPacket.value);
|
||||
transport.send({to: id,
|
||||
type: "setContext",
|
||||
value: "chrome",
|
||||
});
|
||||
}
|
||||
else if (!received) {
|
||||
received = true;
|
||||
transport.send({to: id,
|
||||
type: "executeJSScript",
|
||||
value: "Marionette.is(1,1, 'should return 1'); Marionette.finish();",
|
||||
timeout: false
|
||||
});
|
||||
}
|
||||
else {
|
||||
do_check_eq(aPacket.from, id);
|
||||
do_check_eq(aPacket.value.passed, 1);
|
||||
do_check_eq(aPacket.value.failed, 0);
|
||||
transport.close();
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
delete transport;
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
||||
|
||||
function test_execute_async_chrome()
|
||||
{
|
||||
do_test_pending();
|
||||
got_session = false;
|
||||
got_context = false;
|
||||
received = false;
|
||||
received2 = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if(!got_session) {
|
||||
got_session=true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "newSession",
|
||||
});
|
||||
}
|
||||
else if (!got_context) {
|
||||
got_context = true;
|
||||
do_check_eq('mobile', aPacket.value);
|
||||
transport.send({to: id,
|
||||
type: "setContext",
|
||||
value: "chrome",
|
||||
});
|
||||
}
|
||||
else if (!received) {
|
||||
received = true;
|
||||
transport.send({to: id,
|
||||
type: "setScriptTimeout",
|
||||
value: "2000",
|
||||
});
|
||||
}
|
||||
else if (!received2) {
|
||||
received2 = true;
|
||||
transport.send({to: id,
|
||||
type: "executeJSScript",
|
||||
value: "Marionette.is(1,1, 'should return 1'); Marionette.finish();",
|
||||
timeout: true
|
||||
});
|
||||
}
|
||||
else {
|
||||
do_check_eq(aPacket.from, id);
|
||||
do_check_eq(aPacket.value.passed, 1);
|
||||
do_check_eq(aPacket.value.failed, 0);
|
||||
transport.close();
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
delete transport;
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
||||
|
||||
function test_execute_async_timeout_chrome()
|
||||
{
|
||||
do_test_pending();
|
||||
got_session = false;
|
||||
got_context = false;
|
||||
received = false;
|
||||
received2 = false;
|
||||
id = "";
|
||||
|
||||
let transport = debuggerSocketConnect("127.0.0.1", 2828);
|
||||
transport.hooks = {
|
||||
onPacket: function(aPacket) {
|
||||
this.onPacket = function(aPacket) {
|
||||
if(!got_session) {
|
||||
got_session=true;
|
||||
id = aPacket.id;
|
||||
transport.send({to: id,
|
||||
type: "newSession",
|
||||
});
|
||||
}
|
||||
else if (!got_context) {
|
||||
got_context = true;
|
||||
do_check_eq('mobile', aPacket.value);
|
||||
transport.send({to: id,
|
||||
type: "setContext",
|
||||
value: "chrome",
|
||||
});
|
||||
}
|
||||
else if (!received) {
|
||||
received = true;
|
||||
transport.send({to: id,
|
||||
type: "setScriptTimeout",
|
||||
value: "2000",
|
||||
});
|
||||
}
|
||||
else if (!received2) {
|
||||
received2 = true;
|
||||
transport.send({to: id,
|
||||
type: "executeJSScript",
|
||||
value: "Marionette.is(1,1, 'should return 1');",
|
||||
timeout: true
|
||||
});
|
||||
}
|
||||
else {
|
||||
do_check_eq(aPacket.from, id);
|
||||
do_check_eq(aPacket.error.status, 28);
|
||||
transport.close();
|
||||
}
|
||||
}
|
||||
transport.send({to: "root",
|
||||
type: "getMarionetteID",
|
||||
});
|
||||
},
|
||||
onClosed: function(aStatus) {
|
||||
do_check_eq(aStatus, 0);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
delete transport;
|
||||
},
|
||||
};
|
||||
transport.ready();
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
[DEFAULT]
|
||||
head = head_mar.js
|
||||
tail =
|
||||
|
||||
[test_marionette_exec.js]
|
||||
[test_marionette_execjs.js]
|
||||
[test_marionette_execAsync.js]
|
||||
[test_marionette_err.js]
|
|
@ -52,7 +52,6 @@ skip-if = os == "android"
|
|||
[include:toolkit/mozapps/update/test_svc/unit/xpcshell.ini]
|
||||
[include:toolkit/mozapps/update/test/unit/xpcshell.ini]
|
||||
[include:security/manager/ssl/tests/unit/xpcshell.ini]
|
||||
[include:testing/marionette/tests/unit/xpcshell.ini]
|
||||
[include:testing/xpcshell/example/unit/xpcshell.ini]
|
||||
[include:xpcom/tests/unit/xpcshell.ini]
|
||||
[include:modules/libpref/test/unit/xpcshell.ini]
|
||||
|
|
Загрузка…
Ссылка в новой задаче