2016-08-30 08:18:47 +00:00
|
|
|
#!/bin/bash
|
2016-05-23 20:53:08 +00:00
|
|
|
#
|
2014-06-23 20:37:32 +00:00
|
|
|
# Copyright 2014 Google Inc. All rights reserved.
|
2015-02-28 10:06:53 +00:00
|
|
|
#
|
2014-06-23 20:37:32 +00:00
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
2015-02-28 10:06:53 +00:00
|
|
|
#
|
2014-06-23 20:37:32 +00:00
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
2015-02-28 10:06:53 +00:00
|
|
|
#
|
2014-06-23 20:37:32 +00:00
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
2014-06-20 23:21:49 +00:00
|
|
|
|
2017-05-10 23:45:08 +00:00
|
|
|
set -o errexit
|
|
|
|
|
2014-06-20 23:21:49 +00:00
|
|
|
echo Compile then run the Java test.
|
|
|
|
|
2016-08-29 09:26:31 +00:00
|
|
|
java -version
|
|
|
|
|
[FlexBuffers][Java] Implementation of FlexBuffers API (#5476)
* [FlexBuffers][Java] Implementation of FlexBuffers API
This is the initial attemp to implement FlexBuffer on Java.
There is some limitations as compared to the C++ implementation:
1 - No mutations implemented yet
2 - Does not parse from json
Also, this initial implementation is not focused and performance, but
get the basics write. So there is many opportunities for optimization, for instance,
remove all enums, return CharSequence instead of Strings and object pooling.
* [FlexBuffers][Java] Optimizations and simplification of the Builder API.
This change removes BitWidth enum in favor of static ints. Also
make all "reads" APIs closer to C++ implementation (try to cast or convert
as much as possible, assuming user knows what he is doing). Finally,
we remove the helper classes for building vectors and maps.
There is no official benchmarks, but the unit tests are running in less
than 50% for previous runs, which mean those optimizations are worth it.
* [FlexBuffers][Java] Fix Reference::asString behavior
There was a incorrect assumption that strings would be null-terminated, which
could lead to truncated strings. S now it relies size instead of null-termination.
Other minor improvements
2019-08-29 22:06:24 +00:00
|
|
|
testdir=$(dirname $0)
|
2014-06-20 23:21:49 +00:00
|
|
|
|
2017-05-10 23:45:08 +00:00
|
|
|
targetdir="${testdir}/target"
|
2016-08-29 09:26:31 +00:00
|
|
|
|
2017-05-10 23:45:08 +00:00
|
|
|
if [[ -e "${targetdir}" ]]; then
|
|
|
|
echo "cleaning target"
|
|
|
|
rm -rf "${targetdir}"
|
2014-06-20 23:21:49 +00:00
|
|
|
fi
|
|
|
|
|
2017-05-10 23:45:08 +00:00
|
|
|
mkdir -v "${targetdir}"
|
2016-08-30 08:18:47 +00:00
|
|
|
|
2017-05-10 23:45:08 +00:00
|
|
|
if ! find "${testdir}/../java" -type f -name "*.class" -delete; then
|
|
|
|
echo "failed to clean .class files from java directory" >&2
|
|
|
|
exit 1
|
2016-08-29 09:26:31 +00:00
|
|
|
fi
|
|
|
|
|
2019-02-21 18:50:13 +00:00
|
|
|
javac -d "${targetdir}" -classpath "${testdir}/../java:${testdir}:${testdir}/namespace_test:${testdir}/union_vector" "${testdir}/JavaTest.java"
|
2016-08-29 09:26:31 +00:00
|
|
|
|
2017-05-10 23:45:08 +00:00
|
|
|
(cd "${testdir}" && java -classpath "${targetdir}" JavaTest )
|
2016-09-01 11:01:07 +00:00
|
|
|
|
2017-05-10 23:45:08 +00:00
|
|
|
rm -rf "${targetdir}"
|