#!/bin/sh
# Compile and run a tiny class against the installed jar on the class path and
# on the module path, and check that the module descriptor is present.
set -eu

WORK="$AUTOPKGTEST_TMP"
cd "$WORK"
mkdir -p src/demo out/cp out/mp

cat > src/demo/Demo.java <<'EOF'
package demo;

import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;

@NullMarked
public class Demo {
  static @Nullable String maybe(boolean b) {
    return b ? "set" : null;
  }

  public static void main(String[] args) {
    System.out.println(maybe(true));
  }
}
EOF

# Class path.
javac -cp /usr/share/java/jspecify.jar -d out/cp src/demo/Demo.java
java -cp out/cp:/usr/share/java/jspecify.jar demo.Demo

# Module path: the library must be usable as the named module org.jspecify.
cat > src/module-info.java <<'EOF'
module demo {
  requires org.jspecify;
}
EOF
javac --module-path /usr/share/java/jspecify.jar -d out/mp \
  src/module-info.java src/demo/Demo.java
java --module-path out/mp:/usr/share/java/jspecify.jar -m demo/demo.Demo
jar --describe-module --file /usr/share/java/jspecify.jar | grep -q '^org.jspecify'
