Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
96753523
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
96753523
编写于
7月 17, 2017
作者:
R
Rob Lourens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Disable search integration tests
上级
23f80bae
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
262 addition
and
262 deletion
+262
-262
src/vs/workbench/services/search/test/node/textSearch.integrationTest.ts
...h/services/search/test/node/textSearch.integrationTest.ts
+262
-262
未找到文件。
src/vs/workbench/services/search/test/node/textSearch.integrationTest.ts
浏览文件 @
96753523
...
...
@@ -3,265 +3,265 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'
use strict
'
;
import
path
=
require
(
'
path
'
);
import
assert
=
require
(
'
assert
'
);
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
FileWalker
}
from
'
vs/workbench/services/search/node/fileSearch
'
;
import
{
ISerializedFileMatch
,
IRawSearch
,
IFolderSearch
}
from
'
vs/workbench/services/search/node/search
'
;
import
{
Engine
as
TextSearchEngine
}
from
'
vs/workbench/services/search/node/textSearch
'
;
import
{
RipgrepEngine
}
from
'
vs/workbench/services/search/node/ripgrepTextSearch
'
;
import
{
TextSearchWorkerProvider
}
from
'
vs/workbench/services/search/node/textSearchWorkerProvider
'
;
function
countAll
(
matches
:
ISerializedFileMatch
[]):
number
{
return
matches
.
reduce
((
acc
,
m
)
=>
acc
+
m
.
numMatches
,
0
);
}
const
TEST_ROOT_FOLDER
=
path
.
normalize
(
require
.
toUrl
(
'
./fixtures
'
));
function
rootFolderQueries
():
IFolderSearch
[]
{
return
[
{
folder
:
TEST_ROOT_FOLDER
}
];
}
const
textSearchWorkerProvider
=
new
TextSearchWorkerProvider
();
function
doLegacySearchTest
(
config
:
IRawSearch
,
expectedResultCount
:
number
|
Function
):
TPromise
<
void
>
{
return
new
TPromise
<
void
>
((
resolve
,
reject
)
=>
{
let
engine
=
new
TextSearchEngine
(
config
,
new
FileWalker
(
config
),
textSearchWorkerProvider
);
let
c
=
0
;
engine
.
search
((
result
)
=>
{
if
(
result
)
{
c
+=
countAll
(
result
);
}
},
()
=>
{
},
(
error
)
=>
{
try
{
assert
.
ok
(
!
error
);
if
(
typeof
expectedResultCount
===
'
function
'
)
{
assert
(
expectedResultCount
(
c
));
}
else
{
assert
.
equal
(
c
,
expectedResultCount
);
}
}
catch
(
e
)
{
reject
(
e
);
}
resolve
(
undefined
);
});
});
}
function
doRipgrepSearchTest
(
config
:
IRawSearch
,
expectedResultCount
:
number
):
TPromise
<
void
>
{
return
new
TPromise
<
void
>
((
resolve
,
reject
)
=>
{
let
engine
=
new
RipgrepEngine
(
config
);
let
c
=
0
;
engine
.
search
((
result
)
=>
{
if
(
result
)
{
c
+=
result
.
numMatches
;
}
},
()
=>
{
},
(
error
)
=>
{
try
{
assert
.
ok
(
!
error
);
if
(
typeof
expectedResultCount
===
'
function
'
)
{
assert
(
expectedResultCount
(
c
));
}
else
{
assert
.
equal
(
c
,
expectedResultCount
);
}
}
catch
(
e
)
{
reject
(
e
);
}
resolve
(
undefined
);
});
});
}
function
doSearchTest
(
config
:
IRawSearch
,
expectedResultCount
:
number
,
done
)
{
return
doLegacySearchTest
(
config
,
expectedResultCount
)
.
then
(()
=>
doRipgrepSearchTest
(
config
,
expectedResultCount
))
.
then
(
done
,
done
);
}
suite
(
'
Search-integration
'
,
()
=>
{
test
(
'
Text: GameOfLife
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.js
'
,
contentPattern
:
{
pattern
:
'
GameOfLife
'
,
modifiers
:
'
i
'
},
};
doSearchTest
(
config
,
4
,
done
);
});
test
(
'
Text: GameOfLife (RegExp)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.js
'
,
contentPattern
:
{
pattern
:
'
Game.?fL
\\
w?fe
'
,
isRegExp
:
true
}
};
doSearchTest
(
config
,
4
,
done
);
});
test
(
'
Text: GameOfLife (RegExp to EOL)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.js
'
,
contentPattern
:
{
pattern
:
'
GameOfLife.*
'
,
isRegExp
:
true
}
};
doSearchTest
(
config
,
4
,
done
);
});
test
(
'
Text: GameOfLife (Word Match, Case Sensitive)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.js
'
,
contentPattern
:
{
pattern
:
'
GameOfLife
'
,
isWordMatch
:
true
,
isCaseSensitive
:
true
}
};
doSearchTest
(
config
,
4
,
done
);
});
test
(
'
Text: GameOfLife (Word Match, Spaces)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.js
'
,
contentPattern
:
{
pattern
:
'
GameOfLife
'
,
isWordMatch
:
true
}
};
doSearchTest
(
config
,
1
,
done
);
});
test
(
'
Text: GameOfLife (Word Match, Punctuation and Spaces)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.js
'
,
contentPattern
:
{
pattern
:
'
, as =
'
,
isWordMatch
:
true
}
};
doSearchTest
(
config
,
1
,
done
);
});
test
(
'
Text: Helvetica (UTF 16)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.css
'
,
contentPattern
:
{
pattern
:
'
Helvetica
'
,
modifiers
:
'
i
'
}
};
doSearchTest
(
config
,
3
,
done
);
});
test
(
'
Text: e
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.*
'
,
contentPattern
:
{
pattern
:
'
e
'
,
modifiers
:
'
i
'
}
};
doSearchTest
(
config
,
776
,
done
);
});
test
(
'
Text: e (with excludes)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
:
any
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.*
'
,
contentPattern
:
{
pattern
:
'
e
'
,
modifiers
:
'
i
'
},
excludePattern
:
{
'
**/examples
'
:
true
}
};
doSearchTest
(
config
,
394
,
done
);
});
test
(
'
Text: e (with includes)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
:
any
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.*
'
,
contentPattern
:
{
pattern
:
'
e
'
,
modifiers
:
'
i
'
},
includePattern
:
{
'
**/examples/**
'
:
true
}
};
doSearchTest
(
config
,
382
,
done
);
});
test
(
'
Text: e (with includes and exclude)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
:
any
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.*
'
,
contentPattern
:
{
pattern
:
'
e
'
,
modifiers
:
'
i
'
},
includePattern
:
{
'
**/examples/**
'
:
true
},
excludePattern
:
{
'
**/examples/small.js
'
:
true
}
};
doSearchTest
(
config
,
361
,
done
);
});
test
(
'
Text: a (capped)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
const
maxResults
=
520
;
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.*
'
,
contentPattern
:
{
pattern
:
'
a
'
,
modifiers
:
'
i
'
},
maxResults
};
// (Legacy) search can go over the maxResults because it doesn't trim the results from its worker processes to the exact max size.
// But the worst-case scenario should be 2*max-1
return
doLegacySearchTest
(
config
,
count
=>
count
<
maxResults
*
2
)
.
then
(()
=>
doRipgrepSearchTest
(
config
,
maxResults
))
.
then
(
done
,
done
);
});
test
(
'
Text: a (no results)
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.*
'
,
contentPattern
:
{
pattern
:
'
ahsogehtdas
'
,
modifiers
:
'
i
'
}
};
doSearchTest
(
config
,
0
,
done
);
});
test
(
'
Text: -size
'
,
function
(
done
:
()
=>
void
)
{
this
.
timeout
(
1000
*
60
);
// increase timeout for this one test
let
config
=
{
folderQueries
:
rootFolderQueries
(),
filePattern
:
'
*.css
'
,
contentPattern
:
{
pattern
:
'
-size
'
,
modifiers
:
'
i
'
}
};
doSearchTest
(
config
,
9
,
done
);
});
});
\ No newline at end of file
// 'use strict';
// import path = require('path');
// import assert = require('assert');
// import { TPromise } from 'vs/base/common/winjs.base';
// import { FileWalker } from 'vs/workbench/services/search/node/fileSearch';
// import { ISerializedFileMatch, IRawSearch, IFolderSearch } from 'vs/workbench/services/search/node/search';
// import { Engine as TextSearchEngine } from 'vs/workbench/services/search/node/textSearch';
// import { RipgrepEngine } from 'vs/workbench/services/search/node/ripgrepTextSearch';
// import { TextSearchWorkerProvider } from 'vs/workbench/services/search/node/textSearchWorkerProvider';
// function countAll(matches: ISerializedFileMatch[]): number {
// return matches.reduce((acc, m) => acc + m.numMatches, 0);
// }
// const TEST_ROOT_FOLDER = path.normalize(require.toUrl('./fixtures'));
// function rootFolderQueries(): IFolderSearch[] {
// return [
// { folder: TEST_ROOT_FOLDER }
// ];
// }
// const textSearchWorkerProvider = new TextSearchWorkerProvider();
// function doLegacySearchTest(config: IRawSearch, expectedResultCount: number | Function): TPromise<void> {
// return new TPromise<void>((resolve, reject) => {
// let engine = new TextSearchEngine(config, new FileWalker(config), textSearchWorkerProvider);
// let c = 0;
// engine.search((result) => {
// if (result) {
// c += countAll(result);
// }
// }, () => { }, (error) => {
// try {
// assert.ok(!error);
// if (typeof expectedResultCount === 'function') {
// assert(expectedResultCount(c));
// } else {
// assert.equal(c, expectedResultCount);
// }
// } catch (e) {
// reject(e);
// }
// resolve(undefined);
// });
// });
// }
// function doRipgrepSearchTest(config: IRawSearch, expectedResultCount: number): TPromise<void> {
// return new TPromise<void>((resolve, reject) => {
// let engine = new RipgrepEngine(config);
// let c = 0;
// engine.search((result) => {
// if (result) {
// c += result.numMatches;
// }
// }, () => { }, (error) => {
// try {
// assert.ok(!error);
// if (typeof expectedResultCount === 'function') {
// assert(expectedResultCount(c));
// } else {
// assert.equal(c, expectedResultCount);
// }
// } catch (e) {
// reject(e);
// }
// resolve(undefined);
// });
// });
// }
// function doSearchTest(config: IRawSearch, expectedResultCount: number, done) {
// return doLegacySearchTest(config, expectedResultCount)
// .then(() => doRipgrepSearchTest(config, expectedResultCount))
// .then(done, done);
// }
// suite('Search-integration', () => {
// test('Text: GameOfLife', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.js',
// contentPattern: { pattern: 'GameOfLife', modifiers: 'i' },
// };
// doSearchTest(config, 4, done);
// });
// test('Text: GameOfLife (RegExp)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.js',
// contentPattern: { pattern: 'Game.?fL\\w?fe', isRegExp: true }
// };
// doSearchTest(config, 4, done);
// });
// test('Text: GameOfLife (RegExp to EOL)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.js',
// contentPattern: { pattern: 'GameOfLife.*', isRegExp: true }
// };
// doSearchTest(config, 4, done);
// });
// test('Text: GameOfLife (Word Match, Case Sensitive)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.js',
// contentPattern: { pattern: 'GameOfLife', isWordMatch: true, isCaseSensitive: true }
// };
// doSearchTest(config, 4, done);
// });
// test('Text: GameOfLife (Word Match, Spaces)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.js',
// contentPattern: { pattern: ' GameOfLife ', isWordMatch: true }
// };
// doSearchTest(config, 1, done);
// });
// test('Text: GameOfLife (Word Match, Punctuation and Spaces)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.js',
// contentPattern: { pattern: ', as =', isWordMatch: true }
// };
// doSearchTest(config, 1, done);
// });
// test('Text: Helvetica (UTF 16)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.css',
// contentPattern: { pattern: 'Helvetica', modifiers: 'i' }
// };
// doSearchTest(config, 3, done);
// });
// test('Text: e', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.*',
// contentPattern: { pattern: 'e', modifiers: 'i' }
// };
// doSearchTest(config, 776, done);
// });
// test('Text: e (with excludes)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config: any = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.*',
// contentPattern: { pattern: 'e', modifiers: 'i' },
// excludePattern: { '**/examples': true }
// };
// doSearchTest(config, 394, done);
// });
// test('Text: e (with includes)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config: any = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.*',
// contentPattern: { pattern: 'e', modifiers: 'i' },
// includePattern: { '**/examples/**': true }
// };
// doSearchTest(config, 382, done);
// });
// test('Text: e (with includes and exclude)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config: any = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.*',
// contentPattern: { pattern: 'e', modifiers: 'i' },
// includePattern: { '**/examples/**': true },
// excludePattern: { '**/examples/small.js': true }
// };
// doSearchTest(config, 361, done);
// });
// test('Text: a (capped)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// const maxResults = 520;
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.*',
// contentPattern: { pattern: 'a', modifiers: 'i' },
// maxResults
// };
// // (Legacy) search can go over the maxResults because it doesn't trim the results from its worker processes to the exact max size.
// // But the worst-case scenario should be 2*max-1
// return doLegacySearchTest(config, count => count < maxResults * 2)
// .then(() => doRipgrepSearchTest(config, maxResults))
// .then(done, done);
// });
// test('Text: a (no results)', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.*',
// contentPattern: { pattern: 'ahsogehtdas', modifiers: 'i' }
// };
// doSearchTest(config, 0, done);
// });
// test('Text: -size', function (done: () => void) {
// this.timeout(1000 * 60); // increase timeout for this one test
// let config = {
// folderQueries: rootFolderQueries(),
// filePattern: '*.css',
// contentPattern: { pattern: '-size', modifiers: 'i' }
// };
// doSearchTest(config, 9, done);
// });
// });
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录