<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>com.dylibso.chicory</groupId>
    <artifactId>chicory</artifactId>
    <version>0.0.10</version>
    <relativePath>../pom.xml</relativePath>
  </parent>
  <artifactId>runtime</artifactId>
  <packaging>jar</packaging>
  <name>Chicory - Runtime</name>
  <description>Native JVM WebAssembly runtime</description>

  <dependencies>
    <dependency>
      <groupId>com.dylibso.chicory</groupId>
      <artifactId>log</artifactId>
    </dependency>
    <dependency>
      <groupId>com.dylibso.chicory</groupId>
      <artifactId>wasm</artifactId>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
    </dependency>
  </dependencies>

  <build>
    <testResources>
      <testResource>
        <directory>${project.basedir}/../wasm-corpus/src/test/resources</directory>
      </testResource>
    </testResources>

    <plugins>
      <plugin>
        <groupId>com.dylibso.chicory</groupId>
        <artifactId>test-gen-plugin</artifactId>
        <version>${project.version}</version>
        <configuration>
          <includedWasts>
            <wast>address.wast</wast>
            <wast>align.wast</wast>
            <wast>binary-leb128.wast</wast>
            <wast>binary.wast</wast>
            <wast>block.wast</wast>
            <wast>br.wast</wast>
            <wast>br_if.wast</wast>
            <wast>br_table.wast</wast>
            <wast>bulk.wast</wast>
            <wast>call.wast</wast>
            <wast>call_indirect.wast</wast>
            <wast>comments.wast</wast>
            <wast>const.wast</wast>
            <wast>conversions.wast</wast>
            <wast>custom.wast</wast>
            <wast>data.wast</wast>
            <wast>elem.wast</wast>
            <wast>endianness.wast</wast>
            <wast>exports.wast</wast>
            <wast>f32.wast</wast>
            <wast>f32_bitwise.wast</wast>
            <wast>f32_cmp.wast</wast>
            <wast>f64.wast</wast>
            <wast>f64_bitwise.wast</wast>
            <wast>f64_cmp.wast</wast>
            <wast>fac.wast</wast>
            <wast>float_exprs.wast</wast>
            <wast>float_literals.wast</wast>
            <wast>float_memory.wast</wast>
            <wast>float_misc.wast</wast>
            <wast>forward.wast</wast>
            <wast>func.wast</wast>
            <wast>func_ptrs.wast</wast>
            <wast>global.wast</wast>
            <wast>i32.wast</wast>
            <wast>i64.wast</wast>
            <wast>if.wast</wast>
            <wast>imports.wast</wast>
            <wast>inline-module.wast</wast>
            <wast>int_exprs.wast</wast>
            <wast>int_literals.wast</wast>
            <wast>labels.wast</wast>
            <wast>left-to-right.wast</wast>
            <wast>linking.wast</wast>
            <wast>load.wast</wast>
            <wast>local_get.wast</wast>
            <wast>local_set.wast</wast>
            <wast>local_tee.wast</wast>
            <wast>loop.wast</wast>
            <wast>memory.wast</wast>
            <wast>memory_copy.wast</wast>
            <wast>memory_fill.wast</wast>
            <wast>memory_grow.wast</wast>
            <wast>memory_init.wast</wast>
            <wast>memory_redundancy.wast</wast>
            <wast>memory_size.wast</wast>
            <wast>memory_trap.wast</wast>
            <wast>names.wast</wast>
            <wast>nop.wast</wast>
            <wast>ref_func.wast</wast>
            <wast>ref_is_null.wast</wast>
            <wast>ref_null.wast</wast>
            <wast>return.wast</wast>
            <wast>select.wast</wast>
            <wast>skip-stack-guard-page.wast</wast>
            <wast>stack.wast</wast>
            <wast>start.wast</wast>
            <wast>store.wast</wast>
            <wast>switch.wast</wast>
            <wast>table-sub.wast</wast>
            <wast>table.wast</wast>
            <wast>table_copy.wast</wast>
            <wast>table_fill.wast</wast>
            <wast>table_get.wast</wast>
            <wast>table_grow.wast</wast>
            <wast>table_init.wast</wast>
            <wast>table_set.wast</wast>
            <wast>table_size.wast</wast>
            <wast>token.wast</wast>
            <wast>tokens.wast</wast>
            <wast>traps.wast</wast>
            <wast>type.wast</wast>
            <wast>unreachable.wast</wast>
            <wast>unreached-invalid.wast</wast>
            <wast>unreached-valid.wast</wast>
            <wast>unwind.wast</wast>
            <wast>utf8-custom-section-id.wast</wast>
            <wast>utf8-import-field.wast</wast>
            <wast>utf8-import-module.wast</wast>
            <wast>utf8-invalid-encoding.wast</wast>
          </includedWasts>
          <excludedTests>
            <test>SpecV1LinkingTest.test83</test>
            <test>SpecV1LinkingTest.test86</test>
            <test>SpecV1LinkingTest.test94</test>
            <test>SpecV1LinkingTest.test97</test>
            <test>SpecV1LinkingTest.test115</test>
            <test>SpecV1LinkingTest.test116</test>
            <test>SpecV1LinkingTest.test118</test>
            <test>SpecV1LinkingTest.test121</test>
            <test>SpecV1LinkingTest.test122</test>
          </excludedTests>
          <excludedMalformedWasts>
            <wast>binary-leb128.wast</wast>
            <wast>binary.wast</wast>
          </excludedMalformedWasts>
          <excludedInvalidWasts>
            <wast>block.wast</wast>
            <wast>br.wast</wast>
            <wast>br_if.wast</wast>
            <wast>br_table.wast</wast>
            <wast>call.wast</wast>
            <wast>call_indirect.wast</wast>
            <wast>conversions.wast</wast>
            <wast>data.wast</wast>
            <wast>elem.wast</wast>
            <wast>exports.wast</wast>
            <wast>f32.wast</wast>
            <wast>f32_bitwise.wast</wast>
            <wast>f32_cmp.wast</wast>
            <wast>f64.wast</wast>
            <wast>f64_bitwise.wast</wast>
            <wast>f64_cmp.wast</wast>
            <wast>func.wast</wast>
            <wast>func_ptrs.wast</wast>
            <wast>global.wast</wast>
            <wast>i32.wast</wast>
            <wast>i64.wast</wast>
            <wast>if.wast</wast>
            <wast>imports.wast</wast>
            <wast>labels.wast</wast>
            <wast>linking.wast</wast>
            <wast>load.wast</wast>
            <wast>local_get.wast</wast>
            <wast>local_set.wast</wast>
            <wast>local_tee.wast</wast>
            <wast>loop.wast</wast>
            <wast>memory.wast</wast>
            <wast>memory_copy.wast</wast>
            <wast>memory_fill.wast</wast>
            <wast>memory_grow.wast</wast>
            <wast>memory_init.wast</wast>
            <wast>memory_size.wast</wast>
            <wast>nop.wast</wast>
            <wast>ref_func.wast</wast>
            <wast>ref_is_null.wast</wast>
            <wast>return.wast</wast>
            <wast>select.wast</wast>
            <wast>start.wast</wast>
            <wast>store.wast</wast>
            <wast>switch.wast</wast>
            <wast>table-sub.wast</wast>
            <wast>table.wast</wast>
            <wast>table_fill.wast</wast>
            <wast>table_get.wast</wast>
            <wast>table_grow.wast</wast>
            <wast>table_init.wast</wast>
            <wast>table_set.wast</wast>
            <wast>table_size.wast</wast>
            <wast>unreached-invalid.wast</wast>
          </excludedInvalidWasts>
          <excludedWasts>
            <wast>simd_address.wast</wast>
            <wast>simd_align.wast</wast>
            <wast>simd_bit_shift.wast</wast>
            <wast>simd_bitwise.wast</wast>
            <wast>simd_boolean.wast</wast>
            <wast>simd_const.wast</wast>
            <wast>simd_conversions.wast</wast>
            <wast>simd_f32x4.wast</wast>
            <wast>simd_f32x4_arith.wast</wast>
            <wast>simd_f32x4_cmp.wast</wast>
            <wast>simd_f32x4_pmin_pmax.wast</wast>
            <wast>simd_f32x4_rounding.wast</wast>
            <wast>simd_f64x2.wast</wast>
            <wast>simd_f64x2_arith.wast</wast>
            <wast>simd_f64x2_cmp.wast</wast>
            <wast>simd_f64x2_pmin_pmax.wast</wast>
            <wast>simd_f64x2_rounding.wast</wast>
            <wast>simd_i16x8_arith.wast</wast>
            <wast>simd_i16x8_arith2.wast</wast>
            <wast>simd_i16x8_cmp.wast</wast>
            <wast>simd_i16x8_extadd_pairwise_i8x16.wast</wast>
            <wast>simd_i16x8_extmul_i8x16.wast</wast>
            <wast>simd_i16x8_q15mulr_sat_s.wast</wast>
            <wast>simd_i16x8_sat_arith.wast</wast>
            <wast>simd_i32x4_arith.wast</wast>
            <wast>simd_i32x4_arith2.wast</wast>
            <wast>simd_i32x4_cmp.wast</wast>
            <wast>simd_i32x4_dot_i16x8.wast</wast>
            <wast>simd_i32x4_extadd_pairwise_i16x8.wast</wast>
            <wast>simd_i32x4_extmul_i16x8.wast</wast>
            <wast>simd_i32x4_trunc_sat_f32x4.wast</wast>
            <wast>simd_i32x4_trunc_sat_f64x2.wast</wast>
            <wast>simd_i64x2_arith.wast</wast>
            <wast>simd_i64x2_arith2.wast</wast>
            <wast>simd_i64x2_cmp.wast</wast>
            <wast>simd_i64x2_extmul_i32x4.wast</wast>
            <wast>simd_i8x16_arith.wast</wast>
            <wast>simd_i8x16_arith2.wast</wast>
            <wast>simd_i8x16_cmp.wast</wast>
            <wast>simd_i8x16_sat_arith.wast</wast>
            <wast>simd_int_to_int_extend.wast</wast>
            <wast>simd_lane.wast</wast>
            <wast>simd_linking.wast</wast>
            <wast>simd_load.wast</wast>
            <wast>simd_load16_lane.wast</wast>
            <wast>simd_load32_lane.wast</wast>
            <wast>simd_load64_lane.wast</wast>
            <wast>simd_load8_lane.wast</wast>
            <wast>simd_load_extend.wast</wast>
            <wast>simd_load_splat.wast</wast>
            <wast>simd_load_zero.wast</wast>
            <wast>simd_splat.wast</wast>
            <wast>simd_store.wast</wast>
            <wast>simd_store16_lane.wast</wast>
            <wast>simd_store32_lane.wast</wast>
            <wast>simd_store64_lane.wast</wast>
            <wast>simd_store8_lane.wast</wast>
          </excludedWasts>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>wasm-test-gen</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>
