package com.minres.coredsl.json.tests import com.google.inject.Inject import com.minres.coredsl.coreDsl.DescriptionContent import org.eclipse.emf.ecore.util.EcoreUtil import org.eclipse.xtext.generator.GeneratorContext import org.eclipse.xtext.generator.IGenerator2 import org.eclipse.xtext.generator.InMemoryFileSystemAccess import org.eclipse.xtext.testing.InjectWith import org.eclipse.xtext.testing.XtextRunner import org.eclipse.xtext.testing.util.ParseHelper import org.eclipse.xtext.util.CancelIndicator import org.junit.Test import org.junit.runner.RunWith import static org.junit.Assert.* import static extension com.google.common.io.CharStreams.* import com.minres.coredsl.coreDsl.InstructionSet import java.io.FileReader import org.eclipse.xtext.testing.validation.ValidationTestHelper @RunWith(XtextRunner) @InjectWith(CoreDslInjectorProvider) class CoreDslGenerationTest{ @Inject IGenerator2 generator @Inject extension ParseHelper parseHelper @Inject ValidationTestHelper validator val isa_rv32i = ''' Core RV32I { constants { unsigned int XLEN, FLEN; unsigned CSR_SIZE = 4096; unsigned REG_FILE_SIZE=32; } registers { [[is_pc]] int PC ; int X[REG_FILE_SIZE]; } address_spaces { char MEM[1< [ cancelIndicator = CancelIndicator.NullImpl ]) println(fsa.textFiles) assertEquals(1,fsa.textFiles.size) assertTrue(fsa.textFiles.containsKey("DEFAULT_OUTPUTRV32I.txt")) // assertEquals( // ''' // public class Alice { // // } // '''.toString, fsa.textFiles.get(IFileSystemAccess::DEFAULT_OUTPUT+"Alice.java").toString // ) } }