diff a/test/lib/org/openjdk/asmtools/jasm/i18n.properties b/test/lib/org/openjdk/asmtools/jasm/i18n.properties
--- /dev/null
+++ b/test/lib/org/openjdk/asmtools/jasm/i18n.properties
@@ -0,0 +1,195 @@
+# Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+jasm.usage=\
+Usage: java -jar asmtools.jar jasm [options] file.jasm...\n\
+where possible options include:
+
+jasm.opt.d=\
+\     -d destdir  directory to place resulting .class files
+jasm.opt.v=\
+\     -v          add trace information
+jasm.opt.g=\
+\     -g          add debug information
+jasm.opt.version=\
+\     -version    prints the program version
+jasm.opt.nowrite=\
+\     -nowrite    do not write resulting .class files
+jasm.opt.strict=\
+\     -strict     consider warnings as errors
+jasm.opt.nowarn=\
+\     -nowarn     do not print warnings
+jasm.opt.cv=\
+\     -cv major.minor  set operating class file version (by default {0}.{1})
+
+
+jasm.error.d_requires_argument=-d requires argument
+jasm.error.does_not_exist={0} does not exist
+jasm.error.cv_requires_arg=-cv requires argument
+jasm.error.invalid_major_minor_param=invalid parameter major.minor
+jasm.error.invalid_option=invalid option: {0}
+jasm.error.cannot_read=cannot read {0}
+jasm.error.cannot_write=cannot write {0}
+jasm.error.fatal_error=fatal error
+jasm.error.fatal_exception=fatal exception
+
+
+# Scanner:
+err.invalid.escape.char=Invalid escape character.
+err.eof.in.comment=Comment not terminated at end of input.
+err.invalid.number=Invalid character "{0}" in number.
+err.invalid.octal.number=Invalid character in octal number.
+err.overflow=Numeric overflow.
+err.float.format=Invalid floating point format.
+err.eof.in.string=String not terminated at end of input.
+err.newline.in.string=String not terminated at end of line.
+err.funny.char=Invalid character in input.
+err.unbalanced.paren=Unbalanced parentheses.
+# Parser:
+err.package.repeated=Package statement repeated.
+warn.intf.repeated=Interface {0} repeated.
+warn.exc.repeated=Exception repeated in throws clause.
+warn.record.repeated=Record attribute repeated.
+err.multiple.inherit=Multiple inheritance is not supported.
+err.toplevel.expected=Class, module or interface declaration expected.
+err.const.def.expected=Constant declaration expected.
+err.const.undecl=Constant #{0} not declared.
+err.const.redecl=Constant {0} redeclared.
+warn.const0.redecl=Re-declaration of Constant #0 cannot be written to the class file.
+err.field.expected=Class member declaration expected.
+err.token.expected={0} expected.
+err.identifier.expected=Identifier expected.
+err.extra.nesthost.attribute=There may be at most one NestHost attribute.
+err.extra.nestmembers.attribute=There may be at most one NestMembers attribute.
+err.extra.permittedsubclasses.attribute=There may be at most one PermittedSubclasses attribute.
+err.extra.record.attribute=There may be at most one Record attribute.
+err.extra.preload.attribute=There may be at most one Preload attribute.
+err.grouped.component.expected=Either an annotation or a record component expected.
+warn.no.components.in.record.attribute=Record should have at least one component.
+err.one.of.two.token.expected=Either #{0} or #{1} token expected.
+
+err.both.nesthost.nestmembers.found=The attributes table of a ClassFile structure must not contain both a NestMembers attribute and a NestHost attribute.
+err.name.expected=Name expected, got {0}.
+err.module.name.expected=Module name expected, got {0}.
+err.int.expected=Integer expected.
+err.neg.forbidden=Negative integer is not allowed here.
+err.value.large=Value doesn't fit in {0}.
+err.value.expected=Value expected.
+err.wrong.mnemocode=Invalid mnemocode ({0}).
+err.default.redecl=Default statement already declared in this table.
+err.long.switchtable=Switchtable too long: > {0}.
+err.io.exception=I/O error in {0}.
+warn.wrong.tag=Wrong tag: {0} expected.
+err.wrong.tag=Wrong tag: {0} expected.
+warn.wrong.tag2=Wrong tag: Either {0} or {1} expected.
+err.wrong.tag2=Wrong tag: Either {0} or {1} expected.
+# Code Gen:
+err.locvar.redecl=Local variable {0} redeclared.
+err.locvar.undecl=Local variable {0} not declared.
+#err.locvar.expected=Local variable expected.
+err.label.redecl=Label {0} redeclared.
+err.label.undecl=Label {0} not declared.
+err.label.expected=Label expected.
+err.subtag.expected=Subtag expected.
+err.type.expected=Type expected.
+err.trap.tryredecl=<try {0}> redeclared.
+err.trap.endtryredecl=<endtry {0}> redeclared.
+err.trap.notry=No <try {0}> found.
+err.trap.noendtry=No <endtry {0}> found.
+warn.trap.notref=No <catch {0}> declared.
+err.cannot.write=Cannot write to {0}.
+err.msig.malformed=Malformed method signature at char {0}. [err={1}]
+err.no.classname=Class name not defined.
+warn.msig.more255=Number of parameters too large ({0}>255).
+warn.illslot=Local variable at Illegal slot {0}.
+warn.repeated.modifier=Repeated modifier.
+warn.invalid.modifier.init=invalid modifier for <init> method  \"{0}\".
+warn.invalid.modifier.fiva=at most one of final and volatile modifiers can be used for a field
+warn.invalid.modifier.intfield=interface field must be public static final only
+warn.init.in_int=<init> method cannot be placed in an interface.
+warn.invalid.modifier.intmth=interface method must be abstract public only  \"{0}\".
+warn.invalid.modifier.abst=invalid modifier for abstract method.
+#
+warn.invalid.modifier.field=invalid modifier(s) for a field \"{0}\"
+warn.invalid.modifier.mth=invalid modifier(s) for a method \"{0}\"
+warn.invalid.modifier.innerclass=invalid modifier for an inner class \"{0}\"
+#
+warn.invalid.modifier.class=invalid modifier(s) for a class \"{0}\"
+warn.invalid.modifier.int=invalid modifier(s) for an interface \"{0}\"
+#
+warn.invalid.modifier.acc=at most one of public, protected, and private modifiers can be used.
+warn.invalid.modifier.int.abs=interface class must have abstract modifier.
+warn.missing.modifier.class=class or enum declaration missing.
+warn.invalid.modifier.class.finabs=class cannot be both abstract and final.
+warn.invalid.modifier.class.intenum=cannot be both interface and enum.
+err.itemtype.expected=StackMap item type expected instead of {0}.
+err.localsmap.repeated=locals_map redeclared.
+err.invalid.stack.frame.type=invalid stack frame type.
+err.invalid.offset.same.frame=offset value more than 64 for the 'same_frame' type frame.
+err.no.stack.map.same.locals=stack map element for the 'same_locals_1_stack_item_frame' type frame is absent.
+err.should.be.only.one.stack.map.element=should be only one stack map element for the 'same_locals_1_stack_item_frame' type frame.
+err.invalid.offset.same.locals=offset value more than 64 for the 'same_locals_1_stack_item_frame' type frame.
+err.unexpected.stack.maps=there are unexpected stack maps.
+err.unexpected.locals.maps=there are unexpected locals maps.
+err.no.locals.map.append=locals map element for the 'append_frame' type frame is absent.
+err.more.locals.map.elements=there are more than 3 locals map element for the 'append_frame' type frame.
+err.stackmap.repeated=stack_map redeclared.
+err.version.expected=class file version expected
+err.invalid.innerclass=Invalid declaration of Inner Class
+err.invalid.bootstrapmethod=Invalid declaration of BootstrapMethod Entry
+err.frametype.repeated=Frametype repeated
+err.invalid.paramnum=Invalid Parameter Number: {0}.
+err.duplicate.paramnum=Duplicate Parameter Number: {0}.
+err.paramname.constnum.invaltype=ParameterName CPX at {0} is not a ConstantString.
+err.paramname.token.unexpected=Incorrect ParamName, unrecognized token: \"{0}\".
+#
+# annotations Errors
+#
+err.incorrect.annot.class=Incorrect Annotation (class), expected class name or CPX), got \"{0}\".
+err.incorrect.annot.enum=Incorrect Annotation (enum), expected type field IDENT, \"{0}\".
+err.incorrect.annot.enum.cpx==Incorrect Annotation (enum), expected type field CPX.
+err.incorrect.annot.token=Incorrect Annotation, unrecognized token: \"{0}\".
+err.incorrect.annot.bool=Incorrect Annotation (boolean), expected Integer), got \"{0}\".
+err.incorrect.annot.byte=Incorrect Annotation (byte), expected Integer), got \"{0}\".
+err.incorrect.annot.char=Incorrect Annotation (char), expected Integer), got \"{0}\".
+err.incorrect.annot.short=Incorrect Annotation (short), expected Integer), got \"{0}\".
+err.incorrect.annot.keyword=Incorrect Annotation keyword \"{0}\".
+err.incorrect.typeannot.target=Incorrect TypeAnnotation target \"{0}\".
+err.incorrect.typeannot.targtype.string=Incorrect TypeAnnotation \"{0}\" argument: (expected String),  \"{1}\".
+err.incorrect.typeannot.targtype.int=Incorrect TypeAnnotation \"{0}\" argument: (expected Integer),  \"{1}\".
+err.incorrect.typeannot.pathentry=Incorrect TypeAnnotation TargetPath PathEntry \"{0}\".
+err.incorrect.typeannot.pathentry.argindex=Incorrect TypeAnnotation  TargetPath PathEntry ArgIndex (expected Integer),  \"{0}\".
+#
+# module Errors
+err.module.statement.expected= Module statement expected.
+err.requires.expected=Module statement \"requires [transitive] [static] ModuleName;\" expected.
+warn.dot.will.be.converted=Forward slash \"/\" expected instead of dot \".\". The dot is replaced by \"/\".
+#
+# Compiler Errors
+#
+comperr.constcell.nullvalset="Cell without value in setCell"
+comperr.constcell.nullvalhash="Cell without value in cpoolHashByValue"
+comperr.constcell.invarg="Cell[{0}] has #{1}"
+comperr.constcell.nullval="ConstCell.value=null??"
+comperr.val.noteq="Values not eq"
+comperr.instr.nullarg="null arg for {0}"
+comperr.instr.arglong="Too long argument of {0}: {1}"
+comperr.instr.opclen="Wrong opcLength({0})"
