use of org.opengrok.indexer.analysis.Scopes.Scope in project OpenGrok by OpenGrok.
the class ScopesTest method testGetScope.
/**
* Test of getScope method, of class Scopes.
*/
@Test
public void testGetScope() {
Scopes instance = new Scopes();
Scope globalScope = instance.getScope(0);
instance.addScope(new Scope(10, 20, "scope1", "ns"));
instance.addScope(new Scope(25, 30, "scope2", "ns"));
instance.addScope(new Scope(40, 40, "scope3", "ns"));
instance.addScope(new Scope(60, 70, "scope4", "ns"));
instance.addScope(new Scope(80, 90, "scope5", "ns"));
instance.addScope(new Scope(91, 100, "scope6", "ns"));
assertEquals(instance.size(), 6);
assertEquals(instance.getScope(1), globalScope);
assertEquals(instance.getScope(10).getName(), "scope1");
assertEquals(instance.getScope(15).getName(), "scope1");
assertEquals(instance.getScope(20).getName(), "scope1");
assertEquals(instance.getScope(21), globalScope);
assertEquals(instance.getScope(24), globalScope);
assertEquals(instance.getScope(39), globalScope);
assertEquals(instance.getScope(40).getName(), "scope3");
assertEquals(instance.getScope(41), globalScope);
assertEquals(instance.getScope(90).getName(), "scope5");
assertEquals(instance.getScope(100).getName(), "scope6");
assertEquals(instance.getScope(101), globalScope);
assertEquals(instance.getScope(500), globalScope);
}
use of org.opengrok.indexer.analysis.Scopes.Scope in project OpenGrok by OpenGrok.
the class JavaAnalyzerFactoryTest method testScopeAnalyzer.
/**
* Test of writeXref method, of class CAnalyzerFactory.
*/
@Test
void testScopeAnalyzer() throws Exception {
String path = repository.getSourceRoot() + "/java/Sample.java";
File f = new File(path);
assertTrue(f.canRead() && f.isFile(), "java testfile " + f + " not found");
Document doc = new Document();
doc.add(new Field(QueryBuilder.FULLPATH, path, string_ft_nstored_nanalyzed_norms));
StringWriter xrefOut = new StringWriter();
analyzer.setCtags(ctags);
analyzer.setScopesEnabled(true);
analyzer.analyze(doc, getStreamSource(path), xrefOut);
IndexableField scopesField = doc.getField(QueryBuilder.SCOPES);
assertNotNull(scopesField);
Scopes scopes = Scopes.deserialize(scopesField.binaryValue().bytes);
Scope globalScope = scopes.getScope(-1);
// foo, bar, main
assertEquals(5, scopes.size());
for (int i = 0; i < 74; ++i) {
if (i >= 29 && i <= 31) {
assertEquals("Sample", scopes.getScope(i).getName());
assertEquals("Sample", scopes.getScope(i).getNamespace());
} else if (i >= 33 && i <= 41) {
assertEquals("Method", scopes.getScope(i).getName());
assertEquals("Sample", scopes.getScope(i).getNamespace());
} else if (i == 43) {
assertEquals("AbstractMethod", scopes.getScope(i).getName());
assertEquals("Sample", scopes.getScope(i).getNamespace());
} else if (i >= 47 && i <= 56) {
assertEquals("InnerMethod", scopes.getScope(i).getName());
assertEquals("Sample.InnerClass", scopes.getScope(i).getNamespace());
} else if (i >= 60 && i <= 72) {
assertEquals("main", scopes.getScope(i).getName());
assertEquals("Sample", scopes.getScope(i).getNamespace());
} else {
assertEquals(scopes.getScope(i), globalScope);
assertNull(scopes.getScope(i).getNamespace());
}
}
}
use of org.opengrok.indexer.analysis.Scopes.Scope in project OpenGrok by OpenGrok.
the class CSharpAnalyzerFactoryTest method testScopeAnalyzer.
/**
* Test of writeXref method, of class CSharpAnalyzerFactory.
* @throws Exception exception
*/
@Test
void testScopeAnalyzer() throws Exception {
String path = repository.getSourceRoot() + "/csharp/Sample.cs";
File f = new File(path);
assertTrue(f.canRead() && f.isFile(), "csharp testfile " + f + " not found");
Document doc = new Document();
doc.add(new Field(QueryBuilder.FULLPATH, path, string_ft_nstored_nanalyzed_norms));
StringWriter xrefOut = new StringWriter();
analyzer.setCtags(ctags);
analyzer.setScopesEnabled(true);
analyzer.analyze(doc, getStreamSource(path), xrefOut);
IndexableField scopesField = doc.getField(QueryBuilder.SCOPES);
assertNotNull(scopesField);
Scopes scopes = Scopes.deserialize(scopesField.binaryValue().bytes);
Scope globalScope = scopes.getScope(-1);
// TODO 5
assertEquals(4, scopes.size());
for (int i = 0; i < 41; ++i) {
if (i == 10) {
assertEquals("M1", scopes.getScope(i).getName());
assertEquals("MyNamespace.TopClass", scopes.getScope(i).getNamespace());
} else if (i >= 12 && i <= 14) {
assertEquals("M2", scopes.getScope(i).getName());
assertEquals("MyNamespace.TopClass", scopes.getScope(i).getNamespace());
} else if (i >= 19 && i <= 25) {
assertEquals("M3", scopes.getScope(i).getName());
assertEquals("MyNamespace.TopClass", scopes.getScope(i).getNamespace());
// TODO add support for generic classes
// } else if (i >= 28 && i <= 30) {
// assertEquals("M4", scopes.getScope(i).name);
// assertEquals("MyNamespace.TopClass", scopes.getScope(i).namespace);
} else if (i >= 34 && i <= 36) {
assertEquals("M5", scopes.getScope(i).getName());
assertEquals("MyNamespace.TopClass.InnerClass", scopes.getScope(i).getNamespace());
} else {
assertEquals(scopes.getScope(i), globalScope);
assertNull(scopes.getScope(i).getNamespace());
}
}
}
use of org.opengrok.indexer.analysis.Scopes.Scope in project OpenGrok by OpenGrok.
the class CxxAnalyzerFactoryTest method testScopeAnalyzer.
/**
* Test of writeXref method, of class CAnalyzerFactory.
* @throws Exception exception
*/
@Test
void testScopeAnalyzer() throws Exception {
String path = repository.getSourceRoot() + "/c/sample.cxx";
File f = new File(path);
assertTrue(f.canRead() && f.isFile(), "cxx testfile " + f + " not found");
Document doc = new Document();
doc.add(new Field(QueryBuilder.FULLPATH, path, string_ft_nstored_nanalyzed_norms));
StringWriter xrefOut = new StringWriter();
analyzer.setCtags(ctags);
analyzer.setScopesEnabled(true);
System.out.println(path);
analyzer.analyze(doc, getStreamSource(path), xrefOut);
IndexableField scopesField = doc.getField(QueryBuilder.SCOPES);
assertNotNull(scopesField);
Scopes scopes = Scopes.deserialize(scopesField.binaryValue().bytes);
Scope globalScope = scopes.getScope(-1);
assertEquals(9, scopes.size());
for (int i = 0; i < 50; ++i) {
if (i >= 11 && i <= 15) {
assertEquals("SomeClass", scopes.getScope(i).getName());
assertEquals("SomeClass", scopes.getScope(i).getNamespace());
} else if (i >= 17 && i <= 20) {
assertEquals("~SomeClass", scopes.getScope(i).getName());
assertEquals("SomeClass", scopes.getScope(i).getNamespace());
} else if (i >= 22 && i <= 25) {
assertEquals("MemberFunc", scopes.getScope(i).getName());
assertEquals("SomeClass", scopes.getScope(i).getNamespace());
} else if (i >= 27 && i <= 29) {
assertEquals("operator ++", scopes.getScope(i).getName());
assertEquals("SomeClass", scopes.getScope(i).getNamespace());
} else if (i >= 32 && i <= 34) {
assertEquals("TemplateMember", scopes.getScope(i).getName());
assertEquals("SomeClass", scopes.getScope(i).getNamespace());
} else if (i >= 44 && i <= 46) {
assertEquals("SomeFunc", scopes.getScope(i).getName());
assertEquals("ns1::NamespacedClass", scopes.getScope(i).getNamespace());
} else if (i >= 51 && i <= 54) {
assertEquals("foo", scopes.getScope(i).getName());
assertNull(scopes.getScope(i).getNamespace());
} else if (i >= 59 && i <= 73) {
assertEquals("bar", scopes.getScope(i).getName());
assertNull(scopes.getScope(i).getNamespace());
} else if (i >= 76 && i <= 87) {
assertEquals("main", scopes.getScope(i).getName());
assertNull(scopes.getScope(i).getNamespace());
} else {
assertEquals(scopes.getScope(i), globalScope);
assertNull(scopes.getScope(i).getNamespace());
}
}
}
Aggregations