Search in sources :

Example 6 with Scope

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);
}
Also used : Scope(org.opengrok.indexer.analysis.Scopes.Scope) Test(org.junit.jupiter.api.Test)

Example 7 with Scope

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());
        }
    }
}
Also used : IndexableField(org.apache.lucene.index.IndexableField) IndexableField(org.apache.lucene.index.IndexableField) Field(org.apache.lucene.document.Field) StringWriter(java.io.StringWriter) Scope(org.opengrok.indexer.analysis.Scopes.Scope) Scopes(org.opengrok.indexer.analysis.Scopes) Document(org.apache.lucene.document.Document) File(java.io.File) Test(org.junit.jupiter.api.Test)

Example 8 with Scope

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());
        }
    }
}
Also used : IndexableField(org.apache.lucene.index.IndexableField) IndexableField(org.apache.lucene.index.IndexableField) Field(org.apache.lucene.document.Field) StringWriter(java.io.StringWriter) Scope(org.opengrok.indexer.analysis.Scopes.Scope) Scopes(org.opengrok.indexer.analysis.Scopes) Document(org.apache.lucene.document.Document) File(java.io.File) Test(org.junit.jupiter.api.Test)

Example 9 with Scope

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());
        }
    }
}
Also used : IndexableField(org.apache.lucene.index.IndexableField) IndexableField(org.apache.lucene.index.IndexableField) Field(org.apache.lucene.document.Field) StringWriter(java.io.StringWriter) Scope(org.opengrok.indexer.analysis.Scopes.Scope) Scopes(org.opengrok.indexer.analysis.Scopes) Document(org.apache.lucene.document.Document) File(java.io.File) Test(org.junit.jupiter.api.Test)

Aggregations

Scope (org.opengrok.indexer.analysis.Scopes.Scope)9 Test (org.junit.jupiter.api.Test)6 File (java.io.File)4 StringWriter (java.io.StringWriter)4 Document (org.apache.lucene.document.Document)4 Field (org.apache.lucene.document.Field)4 IndexableField (org.apache.lucene.index.IndexableField)4 Scopes (org.opengrok.indexer.analysis.Scopes)4 IOException (java.io.IOException)1 Definitions (org.opengrok.indexer.analysis.Definitions)1 RuntimeEnvironment (org.opengrok.indexer.configuration.RuntimeEnvironment)1 Hit (org.opengrok.indexer.search.Hit)1