blob: f01378f74ae6d80c4bfd896fe5044274c86d55ff [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
/*
This program was generated by the following Python script:
#!/usr/bin/python2.5
# Remove this when Python 2.6 hits the streets.
from __future__ import with_statement
import sys
import os.path
# Quines the easy way.
with open(sys.argv[0], 'r') as handle:
source = handle.read()
with open(os.path.join(os.path.dirname(sys.argv[0]), 'EqualityTest.java'), 'w') as out:
print >> out, ("/""*" r"""
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
""" "*""/")
print >> out
print >> out, "/""*"
print >> out, "This program was generated by the following Python script:"
print >> out
out.write(source)
print >> out, "*""/"
print >> out, r'''
package org.apache.thrift.test;
// Generated code
import thrift.test.*;
/'''r'''**
*'''r'''/
public class EqualityTest {
public static void main(String[] args) throws Exception {
JavaTestHelper lhs, rhs;
'''
vals = {
'int': ("1", "2"),
'obj': ("\"foo\"", "\"bar\""),
'bin': ("new byte[]{1,2}", "new byte[]{3,4}"),
}
matrix = (
(False,False),
(False,True ),
(True ,False),
(True ,True ),
)
for type in ('int', 'obj', 'bin'):
for option in ('req', 'opt'):
nulls = matrix[0:1] if type == 'int' else matrix[-1::-1]
issets = matrix
for is_null in nulls:
for is_set in issets:
# isset is implied for non-primitives, so only consider the case
# where isset and non-null match.
if type != 'int' and list(is_set) != [ not null for null in is_null ]:
continue
for equal in (True, False):
print >> out
print >> out, " lhs = new JavaTestHelper();"
print >> out, " rhs = new JavaTestHelper();"
print >> out, " lhs." + option + "_" + type, "=", vals[type][0] + ";"
print >> out, " rhs." + option + "_" + type, "=", vals[type][0 if equal else 1] + ";"
isset_setter = "set" + option[0].upper() + option[1:] + "_" + type + "IsSet"
if (type == 'int' and is_set[0]): print >> out, " lhs." + isset_setter + "(true);"
if (type == 'int' and is_set[1]): print >> out, " rhs." + isset_setter + "(true);"
if (is_null[0]): print >> out, " lhs." + option + "_" + type, "= null;"
if (is_null[1]): print >> out, " rhs." + option + "_" + type, "= null;"
this_present = not is_null[0] and (option == 'req' or is_set[0])
that_present = not is_null[1] and (option == 'req' or is_set[1])
print >> out, " // this_present = " + repr(this_present)
print >> out, " // that_present = " + repr(that_present)
is_equal = \
(not this_present and not that_present) or \
(this_present and that_present and equal)
eq_str = 'true' if is_equal else 'false'
print >> out, " if (lhs.equals(rhs) != "+eq_str+")"
print >> out, " throw new RuntimeException(\"Failure\");"
if is_equal:
print >> out, " if (lhs.hashCode() != rhs.hashCode())"
print >> out, " throw new RuntimeException(\"Failure\");"
print >> out, r'''
}
}
'''
*/
package org.apache.thrift.test;
// Generated code
import thrift.test.*;
/**
*/
public class EqualityTest {
public static void main(String[] args) throws Exception {
JavaTestHelper lhs, rhs;
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_int = 1;
rhs.req_int = 1;
// this_present = True
// that_present = True
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_int = 1;
rhs.req_int = 2;
// this_present = True
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_int = 1;
rhs.req_int = 1;
rhs.setReq_intIsSet(true);
// this_present = True
// that_present = True
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_int = 1;
rhs.req_int = 2;
rhs.setReq_intIsSet(true);
// this_present = True
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_int = 1;
rhs.req_int = 1;
lhs.setReq_intIsSet(true);
// this_present = True
// that_present = True
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_int = 1;
rhs.req_int = 2;
lhs.setReq_intIsSet(true);
// this_present = True
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_int = 1;
rhs.req_int = 1;
lhs.setReq_intIsSet(true);
rhs.setReq_intIsSet(true);
// this_present = True
// that_present = True
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_int = 1;
rhs.req_int = 2;
lhs.setReq_intIsSet(true);
rhs.setReq_intIsSet(true);
// this_present = True
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_int = 1;
rhs.opt_int = 1;
// this_present = False
// that_present = False
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_int = 1;
rhs.opt_int = 2;
// this_present = False
// that_present = False
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_int = 1;
rhs.opt_int = 1;
rhs.setOpt_intIsSet(true);
// this_present = False
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_int = 1;
rhs.opt_int = 2;
rhs.setOpt_intIsSet(true);
// this_present = False
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_int = 1;
rhs.opt_int = 1;
lhs.setOpt_intIsSet(true);
// this_present = True
// that_present = False
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_int = 1;
rhs.opt_int = 2;
lhs.setOpt_intIsSet(true);
// this_present = True
// that_present = False
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_int = 1;
rhs.opt_int = 1;
lhs.setOpt_intIsSet(true);
rhs.setOpt_intIsSet(true);
// this_present = True
// that_present = True
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_int = 1;
rhs.opt_int = 2;
lhs.setOpt_intIsSet(true);
rhs.setOpt_intIsSet(true);
// this_present = True
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_obj = "foo";
rhs.req_obj = "foo";
lhs.req_obj = null;
rhs.req_obj = null;
// this_present = False
// that_present = False
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_obj = "foo";
rhs.req_obj = "bar";
lhs.req_obj = null;
rhs.req_obj = null;
// this_present = False
// that_present = False
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_obj = "foo";
rhs.req_obj = "foo";
lhs.req_obj = null;
// this_present = False
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_obj = "foo";
rhs.req_obj = "bar";
lhs.req_obj = null;
// this_present = False
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_obj = "foo";
rhs.req_obj = "foo";
rhs.req_obj = null;
// this_present = True
// that_present = False
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_obj = "foo";
rhs.req_obj = "bar";
rhs.req_obj = null;
// this_present = True
// that_present = False
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_obj = "foo";
rhs.req_obj = "foo";
// this_present = True
// that_present = True
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_obj = "foo";
rhs.req_obj = "bar";
// this_present = True
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_obj = "foo";
rhs.opt_obj = "foo";
lhs.opt_obj = null;
rhs.opt_obj = null;
// this_present = False
// that_present = False
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_obj = "foo";
rhs.opt_obj = "bar";
lhs.opt_obj = null;
rhs.opt_obj = null;
// this_present = False
// that_present = False
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_obj = "foo";
rhs.opt_obj = "foo";
lhs.opt_obj = null;
// this_present = False
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_obj = "foo";
rhs.opt_obj = "bar";
lhs.opt_obj = null;
// this_present = False
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_obj = "foo";
rhs.opt_obj = "foo";
rhs.opt_obj = null;
// this_present = True
// that_present = False
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_obj = "foo";
rhs.opt_obj = "bar";
rhs.opt_obj = null;
// this_present = True
// that_present = False
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_obj = "foo";
rhs.opt_obj = "foo";
// this_present = True
// that_present = True
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_obj = "foo";
rhs.opt_obj = "bar";
// this_present = True
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_bin = new byte[]{1,2};
rhs.req_bin = new byte[]{1,2};
lhs.req_bin = null;
rhs.req_bin = null;
// this_present = False
// that_present = False
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_bin = new byte[]{1,2};
rhs.req_bin = new byte[]{3,4};
lhs.req_bin = null;
rhs.req_bin = null;
// this_present = False
// that_present = False
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_bin = new byte[]{1,2};
rhs.req_bin = new byte[]{1,2};
lhs.req_bin = null;
// this_present = False
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_bin = new byte[]{1,2};
rhs.req_bin = new byte[]{3,4};
lhs.req_bin = null;
// this_present = False
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_bin = new byte[]{1,2};
rhs.req_bin = new byte[]{1,2};
rhs.req_bin = null;
// this_present = True
// that_present = False
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_bin = new byte[]{1,2};
rhs.req_bin = new byte[]{3,4};
rhs.req_bin = null;
// this_present = True
// that_present = False
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_bin = new byte[]{1,2};
rhs.req_bin = new byte[]{1,2};
// this_present = True
// that_present = True
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.req_bin = new byte[]{1,2};
rhs.req_bin = new byte[]{3,4};
// this_present = True
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_bin = new byte[]{1,2};
rhs.opt_bin = new byte[]{1,2};
lhs.opt_bin = null;
rhs.opt_bin = null;
// this_present = False
// that_present = False
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_bin = new byte[]{1,2};
rhs.opt_bin = new byte[]{3,4};
lhs.opt_bin = null;
rhs.opt_bin = null;
// this_present = False
// that_present = False
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_bin = new byte[]{1,2};
rhs.opt_bin = new byte[]{1,2};
lhs.opt_bin = null;
// this_present = False
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_bin = new byte[]{1,2};
rhs.opt_bin = new byte[]{3,4};
lhs.opt_bin = null;
// this_present = False
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_bin = new byte[]{1,2};
rhs.opt_bin = new byte[]{1,2};
rhs.opt_bin = null;
// this_present = True
// that_present = False
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_bin = new byte[]{1,2};
rhs.opt_bin = new byte[]{3,4};
rhs.opt_bin = null;
// this_present = True
// that_present = False
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_bin = new byte[]{1,2};
rhs.opt_bin = new byte[]{1,2};
// this_present = True
// that_present = True
if (lhs.equals(rhs) != true)
throw new RuntimeException("Failure");
if (lhs.hashCode() != rhs.hashCode())
throw new RuntimeException("Failure");
lhs = new JavaTestHelper();
rhs = new JavaTestHelper();
lhs.opt_bin = new byte[]{1,2};
rhs.opt_bin = new byte[]{3,4};
// this_present = True
// that_present = True
if (lhs.equals(rhs) != false)
throw new RuntimeException("Failure");
}
}