diff options
author | Ed Baak <ed.baak@nokia.com> | 2010-07-28 14:15:22 +1000 |
---|---|---|
committer | Ed Baak <ed.baak@nokia.com> | 2010-07-28 14:15:22 +1000 |
commit | 9bb272448ac6e538c436b52fe224a6bd2a75e80d (patch) | |
tree | 190051b907a367f8485482dafb3c542b63bd16ea | |
parent | 8210814717e2950e8fb552a608ecc7e3e8e7beff (diff) |
Remove dependency to qtuitest libraries by including all code for qtuitestrunner in the binary.
Split up testdevicecontrol class in several sub-classes, one per device.
49 files changed, 1576 insertions, 637 deletions
diff --git a/botan/src/botan.pri b/botan/src/botan.pri new file mode 100644 index 0000000..fe639c4 --- /dev/null +++ b/botan/src/botan.pri @@ -0,0 +1,566 @@ +DEPENDPATH += . +INCLUDEPATH += $$PWD $$PWD/../build $$PWD/../build/botan + +win32 { + win32-msvc* { + QMAKE_CXXFLAGS += -wd4251 -wd4290 -wd4250 + DEFINES += BOTAN_DLL=__declspec(dllexport) + } else { + QMAKE_CFLAGS += -fpermissive -finline-functions -Wno-long-long + QMAKE_CXXFLAGS += -fpermissive -finline-functions -Wno-long-long + } + LIBS += -ladvapi32 -luser32 +} + +unix { + QMAKE_CFLAGS += -fPIC -ansi -fpermissive -finline-functions -Wno-long-long + QMAKE_CXXFLAGS += -fPIC -ansi -fpermissive -finline-functions -Wno-long-long + QMAKE_CXXFLAGS_HIDESYMS -= -fvisibility-inlines-hidden # for ubuntu 7.04 +} + +# Input +HEADERS += $$BOTAN_SRC/algo_factory/algo_cache.h \ + $$BOTAN_SRC/algo_factory/algo_factory.h \ + $$BOTAN_SRC/alloc/allocate.h \ + $$BOTAN_SRC/alloc/mem_pool/mem_pool.h \ + $$BOTAN_SRC/alloc/secmem.h \ + $$BOTAN_SRC/alloc/system_alloc/defalloc.h \ + $$BOTAN_SRC/asn1/alg_id.h \ + $$BOTAN_SRC/asn1/asn1_int.h \ + $$BOTAN_SRC/asn1/asn1_obj.h \ + $$BOTAN_SRC/asn1/asn1_oid.h \ + $$BOTAN_SRC/asn1/ber_dec.h \ + $$BOTAN_SRC/asn1/der_enc.h \ + $$BOTAN_SRC/benchmark/benchmark.h \ + $$BOTAN_SRC/block/aes/aes.h \ + $$BOTAN_SRC/block/block_cipher.h \ + $$BOTAN_SRC/block/blowfish/blowfish.h \ + $$BOTAN_SRC/block/cast/cast128.h \ + $$BOTAN_SRC/block/cast/cast256.h \ + $$BOTAN_SRC/block/des/des.h \ + $$BOTAN_SRC/block/des/desx.h \ + $$BOTAN_SRC/block/gost_28147/gost_28147.h \ + $$BOTAN_SRC/block/idea/idea.h \ + $$BOTAN_SRC/block/kasumi/kasumi.h \ + $$BOTAN_SRC/block/lion/lion.h \ + $$BOTAN_SRC/block/lubyrack/lubyrack.h \ + $$BOTAN_SRC/block/mars/mars.h \ + $$BOTAN_SRC/block/misty1/misty1.h \ + $$BOTAN_SRC/block/noekeon/noekeon.h \ + $$BOTAN_SRC/block/rc2/rc2.h \ + $$BOTAN_SRC/block/rc5/rc5.h \ + $$BOTAN_SRC/block/rc6/rc6.h \ + $$BOTAN_SRC/block/safer/safer_sk.h \ + $$BOTAN_SRC/block/seed/seed.h \ + $$BOTAN_SRC/block/serpent/serpent.h \ + $$BOTAN_SRC/block/skipjack/skipjack.h \ + $$BOTAN_SRC/block/square/square.h \ + $$BOTAN_SRC/block/tea/tea.h \ + $$BOTAN_SRC/block/twofish/twofish.h \ + $$BOTAN_SRC/block/xtea/xtea.h \ + $$BOTAN_SRC/cert/x509/certstor.h \ + $$BOTAN_SRC/cert/x509/crl_ent.h \ + $$BOTAN_SRC/cert/x509/pkcs10.h \ + $$BOTAN_SRC/cert/x509/x509_ca.h \ + $$BOTAN_SRC/cert/x509/x509_crl.h \ + $$BOTAN_SRC/cert/x509/x509_ext.h \ + $$BOTAN_SRC/cert/x509/x509_obj.h \ + $$BOTAN_SRC/cert/x509/x509cert.h \ + $$BOTAN_SRC/cert/x509/x509find.h \ + $$BOTAN_SRC/cert/x509/x509self.h \ + $$BOTAN_SRC/cert/x509/x509stor.h \ + $$BOTAN_SRC/checksum/adler32/adler32.h \ + $$BOTAN_SRC/checksum/crc24/crc24.h \ + $$BOTAN_SRC/checksum/crc32/crc32.h \ + $$BOTAN_SRC/cms/cms_dec.h \ + $$BOTAN_SRC/cms/cms_enc.h \ + $$BOTAN_SRC/codec/base64/base64.h \ + $$BOTAN_SRC/codec/hex/hex.h \ + $$BOTAN_SRC/codec/openpgp/openpgp.h \ + $$BOTAN_SRC/codec/pem/pem.h \ + $$BOTAN_SRC/cryptobox/cryptobox.h \ + $$BOTAN_SRC/engine/def_engine/def_eng.h \ + $$BOTAN_SRC/engine/engine.h \ + $$BOTAN_SRC/entropy/entropy_src.h \ + $$BOTAN_SRC/filters/basefilt.h \ + $$BOTAN_SRC/filters/buf_filt.h \ + $$BOTAN_SRC/filters/data_snk.h \ + $$BOTAN_SRC/filters/data_src.h \ + $$BOTAN_SRC/filters/filter.h \ + $$BOTAN_SRC/filters/filters.h \ + $$BOTAN_SRC/filters/out_buf.h \ + $$BOTAN_SRC/filters/pbe.h \ + $$BOTAN_SRC/filters/pipe.h \ + $$BOTAN_SRC/filters/secqueue.h \ + $$BOTAN_SRC/hash/fork256/fork256.h \ + $$BOTAN_SRC/hash/gost_3411/gost_3411.h \ + $$BOTAN_SRC/hash/has160/has160.h \ + $$BOTAN_SRC/hash/hash.h \ + $$BOTAN_SRC/hash/md2/md2.h \ + $$BOTAN_SRC/hash/md4/md4.h \ + $$BOTAN_SRC/hash/md5/md5.h \ + $$BOTAN_SRC/hash/mdx_hash/mdx_hash.h \ + $$BOTAN_SRC/hash/par_hash/par_hash.h \ + $$BOTAN_SRC/hash/rmd128/rmd128.h \ + $$BOTAN_SRC/hash/rmd160/rmd160.h \ + $$BOTAN_SRC/hash/sha1/sha160.h \ + $$BOTAN_SRC/hash/sha2/sha2_32.h \ + $$BOTAN_SRC/hash/sha2/sha2_64.h \ + $$BOTAN_SRC/hash/skein/skein_512.h \ + $$BOTAN_SRC/hash/tiger/tiger.h \ + $$BOTAN_SRC/hash/whirlpool/whrlpool.h \ + $$BOTAN_SRC/kdf/kdf.h \ + $$BOTAN_SRC/kdf/kdf1/kdf1.h \ + $$BOTAN_SRC/kdf/kdf2/kdf2.h \ + $$BOTAN_SRC/kdf/mgf1/mgf1.h \ + $$BOTAN_SRC/kdf/ssl_prf/prf_ssl3.h \ + $$BOTAN_SRC/kdf/tls_prf/prf_tls.h \ + $$BOTAN_SRC/kdf/x942_prf/prf_x942.h \ + $$BOTAN_SRC/libstate/botan.h \ + $$BOTAN_SRC/libstate/init.h \ + $$BOTAN_SRC/libstate/libstate.h \ + $$BOTAN_SRC/libstate/look_pk.h \ + $$BOTAN_SRC/libstate/lookup.h \ + $$BOTAN_SRC/libstate/oid_lookup/oids.h \ + $$BOTAN_SRC/libstate/pk_engine.h \ + $$BOTAN_SRC/libstate/scan_name.h \ + $$BOTAN_SRC/mac/cbc_mac/cbc_mac.h \ + $$BOTAN_SRC/mac/cmac/cmac.h \ + $$BOTAN_SRC/mac/hmac/hmac.h \ + $$BOTAN_SRC/mac/mac.h \ + $$BOTAN_SRC/mac/ssl3mac/ssl3_mac.h \ + $$BOTAN_SRC/mac/x919_mac/x919_mac.h \ + $$BOTAN_SRC/math/bigint/bigint.h \ + $$BOTAN_SRC/math/bigint/divide.h \ + $$BOTAN_SRC/math/bigint/mp_core.h \ + $$BOTAN_SRC/math/bigint/mp_generic/mp_asm.h \ + $$BOTAN_SRC/math/bigint/mp_generic/mp_asmi.h \ + $$BOTAN_SRC/math/bigint/mp_types.h \ + $$BOTAN_SRC/math/numbertheory/blinding.h \ + $$BOTAN_SRC/math/numbertheory/def_powm.h \ + $$BOTAN_SRC/math/numbertheory/numthry.h \ + $$BOTAN_SRC/math/numbertheory/pow_mod.h \ + $$BOTAN_SRC/math/numbertheory/reducer.h \ + $$BOTAN_SRC/modes/cbc/cbc.h \ + $$BOTAN_SRC/modes/cfb/cfb.h \ + $$BOTAN_SRC/modes/ctr/ctr.h \ + $$BOTAN_SRC/modes/cts/cts.h \ + $$BOTAN_SRC/modes/eax/eax.h \ + $$BOTAN_SRC/modes/ecb/ecb.h \ + $$BOTAN_SRC/modes/mode_pad/mode_pad.h \ + $$BOTAN_SRC/modes/modebase.h \ + $$BOTAN_SRC/modes/ofb/ofb.h \ + $$BOTAN_SRC/modes/xts/xts.h \ + $$BOTAN_SRC/mutex/mutex.h \ + $$BOTAN_SRC/mutex/noop_mutex/mux_noop.h \ + $$BOTAN_SRC/pbe/get_pbe.h \ + $$BOTAN_SRC/pbe/pbes1/pbes1.h \ + $$BOTAN_SRC/pbe/pbes2/pbes2.h \ + $$BOTAN_SRC/pk_pad/eme.h \ + $$BOTAN_SRC/pk_pad/eme1/eme1.h \ + $$BOTAN_SRC/pk_pad/eme_pkcs/eme_pkcs.h \ + $$BOTAN_SRC/pk_pad/emsa.h \ + $$BOTAN_SRC/pk_pad/emsa1/emsa1.h \ + $$BOTAN_SRC/pk_pad/emsa1_bsi/emsa1_bsi.h \ + $$BOTAN_SRC/pk_pad/emsa2/emsa2.h \ + $$BOTAN_SRC/pk_pad/emsa3/emsa3.h \ + $$BOTAN_SRC/pk_pad/emsa4/emsa4.h \ + $$BOTAN_SRC/pk_pad/emsa_raw/emsa_raw.h \ + $$BOTAN_SRC/pk_pad/hash_id/hash_id.h \ + $$BOTAN_SRC/pubkey/dh/dh.h \ + $$BOTAN_SRC/pubkey/dh/dh_core.h \ + $$BOTAN_SRC/pubkey/dh/dh_op.h \ + $$BOTAN_SRC/pubkey/dl_algo/dl_algo.h \ + $$BOTAN_SRC/pubkey/dl_group/dl_group.h \ + $$BOTAN_SRC/pubkey/dlies/dlies.h \ + $$BOTAN_SRC/pubkey/dsa/dsa.h \ + $$BOTAN_SRC/pubkey/dsa/dsa_core.h \ + $$BOTAN_SRC/pubkey/dsa/dsa_op.h \ + $$BOTAN_SRC/pubkey/elgamal/elg_core.h \ + $$BOTAN_SRC/pubkey/elgamal/elg_op.h \ + $$BOTAN_SRC/pubkey/elgamal/elgamal.h \ + $$BOTAN_SRC/pubkey/if_algo/if_algo.h \ + $$BOTAN_SRC/pubkey/if_algo/if_core.h \ + $$BOTAN_SRC/pubkey/if_algo/if_op.h \ + $$BOTAN_SRC/pubkey/keypair/keypair.h \ + $$BOTAN_SRC/pubkey/nr/nr.h \ + $$BOTAN_SRC/pubkey/nr/nr_core.h \ + $$BOTAN_SRC/pubkey/nr/nr_op.h \ + $$BOTAN_SRC/pubkey/pk_algs.h \ + $$BOTAN_SRC/pubkey/pk_codecs/pkcs8.h \ + $$BOTAN_SRC/pubkey/pk_codecs/x509_key.h \ + $$BOTAN_SRC/pubkey/pk_filts.h \ + $$BOTAN_SRC/pubkey/pk_keys.h \ + $$BOTAN_SRC/pubkey/pubkey.h \ + $$BOTAN_SRC/pubkey/pubkey_enums.h \ + $$BOTAN_SRC/pubkey/rsa/rsa.h \ + $$BOTAN_SRC/pubkey/rw/rw.h \ + $$BOTAN_SRC/rng/auto_rng/auto_rng.h \ + $$BOTAN_SRC/rng/hmac_rng/hmac_rng.h \ + $$BOTAN_SRC/rng/randpool/randpool.h \ + $$BOTAN_SRC/rng/rng.h \ + $$BOTAN_SRC/rng/x931_rng/x931_rng.h \ + $$BOTAN_SRC/s2k/pbkdf1/pbkdf1.h \ + $$BOTAN_SRC/s2k/pbkdf2/pbkdf2.h \ + $$BOTAN_SRC/s2k/pgps2k/pgp_s2k.h \ + $$BOTAN_SRC/s2k/s2k.h \ + $$BOTAN_SRC/selftest/selftest.h \ + $$BOTAN_SRC/stream/arc4/arc4.h \ + $$BOTAN_SRC/stream/salsa20/salsa20.h \ + $$BOTAN_SRC/stream/stream_cipher.h \ + $$BOTAN_SRC/stream/turing/turing.h \ + $$BOTAN_SRC/stream/wid_wake/wid_wake.h \ + $$BOTAN_SRC/sym_algo/sym_algo.h \ + $$BOTAN_SRC/sym_algo/symkey.h \ + $$BOTAN_SRC/timer/timer.h \ + $$BOTAN_SRC/utils/bit_ops.h \ + $$BOTAN_SRC/utils/bswap.h \ + $$BOTAN_SRC/utils/buf_comp/buf_comp.h \ + $$BOTAN_SRC/utils/charset.h \ + $$BOTAN_SRC/utils/datastor/datastor.h \ + $$BOTAN_SRC/utils/exceptn.h \ + $$BOTAN_SRC/utils/loadstor.h \ + $$BOTAN_SRC/utils/mem_ops.h \ + $$BOTAN_SRC/utils/parsing.h \ + $$BOTAN_SRC/utils/rotate.h \ + $$BOTAN_SRC/utils/stl_util.h \ + $$BOTAN_SRC/utils/types.h \ + $$BOTAN_SRC/utils/ui.h \ + $$BOTAN_SRC/utils/util.h \ + $$BOTAN_SRC/utils/version.h \ + $$BOTAN_SRC/utils/xor_buf.h + +win32 { + HEADERS += $$BOTAN_SRC/entropy/cryptoapi_rng/es_capi.h \ + $$BOTAN_SRC/entropy/win32_stats/es_win32.h \ + $$BOTAN_SRC/mutex/win32_crit_section/mux_win32.h \ + $$BOTAN_SRC/timer/win32_query_perf_ctr/tm_win32.h +} + +unix { + HEADERS += $$BOTAN_SRC/alloc/alloc_mmap/mmap_mem.h \ + $$BOTAN_SRC/cert/cvc/cvc_ado.h \ + $$BOTAN_SRC/cert/cvc/cvc_ca.h \ + $$BOTAN_SRC/cert/cvc/cvc_cert.h \ + $$BOTAN_SRC/cert/cvc/cvc_gen_cert.h \ + $$BOTAN_SRC/cert/cvc/cvc_key.h \ + $$BOTAN_SRC/cert/cvc/cvc_req.h \ + $$BOTAN_SRC/cert/cvc/cvc_self.h \ + $$BOTAN_SRC/cert/cvc/eac_asn_obj.h \ + $$BOTAN_SRC/cert/cvc/eac_obj.h \ + $$BOTAN_SRC/cert/cvc/ecdsa_sig.h \ + $$BOTAN_SRC/cert/cvc/freestore.h \ + $$BOTAN_SRC/cert/cvc/signed_obj.h \ + $$BOTAN_SRC/entropy/dev_random/es_dev.h \ + $$BOTAN_SRC/entropy/egd/es_egd.h \ + $$BOTAN_SRC/entropy/proc_walk/es_ftw.h \ + $$BOTAN_SRC/entropy/unix_procs/es_unix.h \ + $$BOTAN_SRC/entropy/unix_procs/unix_cmd.h \ + $$BOTAN_SRC/filters/fd_unix/fd_unix.h \ + $$BOTAN_SRC/math/gfpmath/curve_gfp.h \ + $$BOTAN_SRC/math/gfpmath/gfp_element.h \ + $$BOTAN_SRC/math/gfpmath/gfp_modulus.h \ + $$BOTAN_SRC/math/gfpmath/point_gfp.h \ + $$BOTAN_SRC/mutex/pthreads/mux_pthr.h \ + $$BOTAN_SRC/pubkey/ec_dompar/ec_dompar.h \ + $$BOTAN_SRC/pubkey/ecc_key/ecc_key.h \ + $$BOTAN_SRC/pubkey/ecdsa/ecdsa.h \ + $$BOTAN_SRC/pubkey/ecdsa/ecdsa_core.h \ + $$BOTAN_SRC/pubkey/ecdsa/ecdsa_op.h \ + $$BOTAN_SRC/pubkey/eckaeg/eckaeg.h \ + $$BOTAN_SRC/pubkey/eckaeg/eckaeg_core.h \ + $$BOTAN_SRC/pubkey/eckaeg/eckaeg_op.h \ + $$BOTAN_SRC/timer/gettimeofday/tm_unix.h +} + +linux*-g++* { + HEADERS += $$BOTAN_SRC/timer/posix_rt/tm_posix.h +} + +SOURCES += $$BOTAN_SRC/algo_factory/algo_factory.cpp \ + $$BOTAN_SRC/algo_factory/prov_weight.cpp \ + $$BOTAN_SRC/alloc/mem_pool/mem_pool.cpp \ + $$BOTAN_SRC/alloc/system_alloc/defalloc.cpp \ + $$BOTAN_SRC/asn1/alg_id.cpp \ + $$BOTAN_SRC/asn1/asn1_alt.cpp \ + $$BOTAN_SRC/asn1/asn1_att.cpp \ + $$BOTAN_SRC/asn1/asn1_dn.cpp \ + $$BOTAN_SRC/asn1/asn1_int.cpp \ + $$BOTAN_SRC/asn1/asn1_oid.cpp \ + $$BOTAN_SRC/asn1/asn1_str.cpp \ + $$BOTAN_SRC/asn1/asn1_tm.cpp \ + $$BOTAN_SRC/asn1/ber_dec.cpp \ + $$BOTAN_SRC/asn1/der_enc.cpp \ + $$BOTAN_SRC/benchmark/benchmark.cpp \ + $$BOTAN_SRC/block/aes/aes.cpp \ + $$BOTAN_SRC/block/aes/aes_tab.cpp \ + $$BOTAN_SRC/block/blowfish/blfs_tab.cpp \ + $$BOTAN_SRC/block/blowfish/blowfish.cpp \ + $$BOTAN_SRC/block/cast/cast128.cpp \ + $$BOTAN_SRC/block/cast/cast256.cpp \ + $$BOTAN_SRC/block/cast/cast_tab.cpp \ + $$BOTAN_SRC/block/des/des.cpp \ + $$BOTAN_SRC/block/des/des_tab.cpp \ + $$BOTAN_SRC/block/des/desx.cpp \ + $$BOTAN_SRC/block/gost_28147/gost_28147.cpp \ + $$BOTAN_SRC/block/idea/idea.cpp \ + $$BOTAN_SRC/block/kasumi/kasumi.cpp \ + $$BOTAN_SRC/block/lion/lion.cpp \ + $$BOTAN_SRC/block/lubyrack/lubyrack.cpp \ + $$BOTAN_SRC/block/mars/mars.cpp \ + $$BOTAN_SRC/block/mars/mars_tab.cpp \ + $$BOTAN_SRC/block/misty1/misty1.cpp \ + $$BOTAN_SRC/block/noekeon/noekeon.cpp \ + $$BOTAN_SRC/block/rc2/rc2.cpp \ + $$BOTAN_SRC/block/rc5/rc5.cpp \ + $$BOTAN_SRC/block/rc6/rc6.cpp \ + $$BOTAN_SRC/block/safer/safe_tab.cpp \ + $$BOTAN_SRC/block/safer/safer_sk.cpp \ + $$BOTAN_SRC/block/seed/seed.cpp \ + $$BOTAN_SRC/block/seed/seed_tab.cpp \ + $$BOTAN_SRC/block/serpent/serpent.cpp \ + $$BOTAN_SRC/block/skipjack/skipjack.cpp \ + $$BOTAN_SRC/block/square/sqr_tab.cpp \ + $$BOTAN_SRC/block/square/square.cpp \ + $$BOTAN_SRC/block/tea/tea.cpp \ + $$BOTAN_SRC/block/twofish/two_tab.cpp \ + $$BOTAN_SRC/block/twofish/twofish.cpp \ + $$BOTAN_SRC/block/xtea/xtea.cpp \ + $$BOTAN_SRC/cert/x509/certstor.cpp \ + $$BOTAN_SRC/cert/x509/crl_ent.cpp \ + $$BOTAN_SRC/cert/x509/pkcs10.cpp \ + $$BOTAN_SRC/cert/x509/x509_ca.cpp \ + $$BOTAN_SRC/cert/x509/x509_crl.cpp \ + $$BOTAN_SRC/cert/x509/x509_ext.cpp \ + $$BOTAN_SRC/cert/x509/x509_obj.cpp \ + $$BOTAN_SRC/cert/x509/x509cert.cpp \ + $$BOTAN_SRC/cert/x509/x509find.cpp \ + $$BOTAN_SRC/cert/x509/x509opt.cpp \ + $$BOTAN_SRC/cert/x509/x509self.cpp \ + $$BOTAN_SRC/cert/x509/x509stor.cpp \ + $$BOTAN_SRC/checksum/adler32/adler32.cpp \ + $$BOTAN_SRC/checksum/crc24/crc24.cpp \ + $$BOTAN_SRC/checksum/crc32/crc32.cpp \ + $$BOTAN_SRC/cms/cms_algo.cpp \ + $$BOTAN_SRC/cms/cms_comp.cpp \ + $$BOTAN_SRC/cms/cms_dalg.cpp \ + $$BOTAN_SRC/cms/cms_dec.cpp \ + $$BOTAN_SRC/cms/cms_ealg.cpp \ + $$BOTAN_SRC/cms/cms_enc.cpp \ + $$BOTAN_SRC/codec/base64/b64_char.cpp \ + $$BOTAN_SRC/codec/base64/base64.cpp \ + $$BOTAN_SRC/codec/hex/hex.cpp \ + $$BOTAN_SRC/codec/hex/hex_char.cpp \ + $$BOTAN_SRC/codec/openpgp/openpgp.cpp \ + $$BOTAN_SRC/codec/pem/pem.cpp \ + $$BOTAN_SRC/cryptobox/cryptobox.cpp \ + $$BOTAN_SRC/engine/def_engine/def_mode.cpp \ + $$BOTAN_SRC/engine/def_engine/def_pk_ops.cpp \ + $$BOTAN_SRC/engine/def_engine/def_powm.cpp \ + $$BOTAN_SRC/engine/def_engine/lookup_block.cpp \ + $$BOTAN_SRC/engine/def_engine/lookup_hash.cpp \ + $$BOTAN_SRC/engine/def_engine/lookup_mac.cpp \ + $$BOTAN_SRC/engine/def_engine/lookup_stream.cpp \ + $$BOTAN_SRC/filters/algo_filt.cpp \ + $$BOTAN_SRC/filters/basefilt.cpp \ + $$BOTAN_SRC/filters/buf_filt.cpp \ + $$BOTAN_SRC/filters/data_snk.cpp \ + $$BOTAN_SRC/filters/data_src.cpp \ + $$BOTAN_SRC/filters/filter.cpp \ + $$BOTAN_SRC/filters/out_buf.cpp \ + $$BOTAN_SRC/filters/pipe.cpp \ + $$BOTAN_SRC/filters/pipe_io.cpp \ + $$BOTAN_SRC/filters/pipe_rw.cpp \ + $$BOTAN_SRC/filters/secqueue.cpp \ + $$BOTAN_SRC/hash/fork256/fork256.cpp \ + $$BOTAN_SRC/hash/gost_3411/gost_3411.cpp \ + $$BOTAN_SRC/hash/has160/has160.cpp \ + $$BOTAN_SRC/hash/md2/md2.cpp \ + $$BOTAN_SRC/hash/md4/md4.cpp \ + $$BOTAN_SRC/hash/md5/md5.cpp \ + $$BOTAN_SRC/hash/mdx_hash/mdx_hash.cpp \ + $$BOTAN_SRC/hash/par_hash/par_hash.cpp \ + $$BOTAN_SRC/hash/rmd128/rmd128.cpp \ + $$BOTAN_SRC/hash/rmd160/rmd160.cpp \ + $$BOTAN_SRC/hash/sha1/sha160.cpp \ + $$BOTAN_SRC/hash/sha2/sha2_32.cpp \ + $$BOTAN_SRC/hash/sha2/sha2_64.cpp \ + $$BOTAN_SRC/hash/skein/skein_512.cpp \ + $$BOTAN_SRC/hash/tiger/tig_tab.cpp \ + $$BOTAN_SRC/hash/tiger/tiger.cpp \ + $$BOTAN_SRC/hash/whirlpool/whrl_tab.cpp \ + $$BOTAN_SRC/hash/whirlpool/whrlpool.cpp \ + $$BOTAN_SRC/kdf/kdf.cpp \ + $$BOTAN_SRC/kdf/kdf1/kdf1.cpp \ + $$BOTAN_SRC/kdf/kdf2/kdf2.cpp \ + $$BOTAN_SRC/kdf/mgf1/mgf1.cpp \ + $$BOTAN_SRC/kdf/ssl_prf/prf_ssl3.cpp \ + $$BOTAN_SRC/kdf/tls_prf/prf_tls.cpp \ + $$BOTAN_SRC/kdf/x942_prf/prf_x942.cpp \ + $$BOTAN_SRC/libstate/get_enc.cpp \ + $$BOTAN_SRC/libstate/init.cpp \ + $$BOTAN_SRC/libstate/libstate.cpp \ + $$BOTAN_SRC/libstate/look_pk.cpp \ + $$BOTAN_SRC/libstate/lookup.cpp \ + $$BOTAN_SRC/libstate/oid_lookup/oids.cpp \ + $$BOTAN_SRC/libstate/pk_engine.cpp \ + $$BOTAN_SRC/libstate/policy.cpp \ + $$BOTAN_SRC/libstate/scan_name.cpp \ + $$BOTAN_SRC/mac/cbc_mac/cbc_mac.cpp \ + $$BOTAN_SRC/mac/cmac/cmac.cpp \ + $$BOTAN_SRC/mac/hmac/hmac.cpp \ + $$BOTAN_SRC/mac/mac.cpp \ + $$BOTAN_SRC/mac/ssl3mac/ssl3_mac.cpp \ + $$BOTAN_SRC/mac/x919_mac/x919_mac.cpp \ + $$BOTAN_SRC/math/bigint/big_code.cpp \ + $$BOTAN_SRC/math/bigint/big_io.cpp \ + $$BOTAN_SRC/math/bigint/big_ops2.cpp \ + $$BOTAN_SRC/math/bigint/big_ops3.cpp \ + $$BOTAN_SRC/math/bigint/big_rand.cpp \ + $$BOTAN_SRC/math/bigint/bigint.cpp \ + $$BOTAN_SRC/math/bigint/divide.cpp \ + $$BOTAN_SRC/math/bigint/monty_generic/mp_monty.cpp \ + $$BOTAN_SRC/math/bigint/mp_asm.cpp \ + $$BOTAN_SRC/math/bigint/mp_comba.cpp \ + $$BOTAN_SRC/math/bigint/mp_karat.cpp \ + $$BOTAN_SRC/math/bigint/mp_misc.cpp \ + $$BOTAN_SRC/math/bigint/mp_shift.cpp \ + $$BOTAN_SRC/math/bigint/mulop_generic/mp_mulop.cpp \ + $$BOTAN_SRC/math/numbertheory/blinding.cpp \ + $$BOTAN_SRC/math/numbertheory/dsa_gen.cpp \ + $$BOTAN_SRC/math/numbertheory/jacobi.cpp \ + $$BOTAN_SRC/math/numbertheory/make_prm.cpp \ + $$BOTAN_SRC/math/numbertheory/mp_numth.cpp \ + $$BOTAN_SRC/math/numbertheory/numthry.cpp \ + $$BOTAN_SRC/math/numbertheory/pow_mod.cpp \ + $$BOTAN_SRC/math/numbertheory/powm_fw.cpp \ + $$BOTAN_SRC/math/numbertheory/powm_mnt.cpp \ + $$BOTAN_SRC/math/numbertheory/primes.cpp \ + $$BOTAN_SRC/math/numbertheory/reducer.cpp \ + $$BOTAN_SRC/math/numbertheory/ressol.cpp \ + $$BOTAN_SRC/modes/cbc/cbc.cpp \ + $$BOTAN_SRC/modes/cfb/cfb.cpp \ + $$BOTAN_SRC/modes/ctr/ctr.cpp \ + $$BOTAN_SRC/modes/cts/cts.cpp \ + $$BOTAN_SRC/modes/eax/eax.cpp \ + $$BOTAN_SRC/modes/eax/eax_dec.cpp \ + $$BOTAN_SRC/modes/ecb/ecb.cpp \ + $$BOTAN_SRC/modes/mode_pad/mode_pad.cpp \ + $$BOTAN_SRC/modes/modebase.cpp \ + $$BOTAN_SRC/modes/ofb/ofb.cpp \ + $$BOTAN_SRC/modes/xts/xts.cpp \ + $$BOTAN_SRC/mutex/noop_mutex/mux_noop.cpp \ + $$BOTAN_SRC/pbe/get_pbe.cpp \ + $$BOTAN_SRC/pbe/pbes1/pbes1.cpp \ + $$BOTAN_SRC/pbe/pbes2/pbes2.cpp \ + $$BOTAN_SRC/pk_pad/eme.cpp \ + $$BOTAN_SRC/pk_pad/eme1/eme1.cpp \ + $$BOTAN_SRC/pk_pad/eme_pkcs/eme_pkcs.cpp \ + $$BOTAN_SRC/pk_pad/emsa1/emsa1.cpp \ + $$BOTAN_SRC/pk_pad/emsa1_bsi/emsa1_bsi.cpp \ + $$BOTAN_SRC/pk_pad/emsa2/emsa2.cpp \ + $$BOTAN_SRC/pk_pad/emsa3/emsa3.cpp \ + $$BOTAN_SRC/pk_pad/emsa4/emsa4.cpp \ + $$BOTAN_SRC/pk_pad/emsa_raw/emsa_raw.cpp \ + $$BOTAN_SRC/pk_pad/hash_id/hash_id.cpp \ + $$BOTAN_SRC/pubkey/dh/dh.cpp \ + $$BOTAN_SRC/pubkey/dh/dh_core.cpp \ + $$BOTAN_SRC/pubkey/dl_algo/dl_algo.cpp \ + $$BOTAN_SRC/pubkey/dl_group/dl_group.cpp \ + $$BOTAN_SRC/pubkey/dlies/dlies.cpp \ + $$BOTAN_SRC/pubkey/dsa/dsa.cpp \ + $$BOTAN_SRC/pubkey/dsa/dsa_core.cpp \ + $$BOTAN_SRC/pubkey/dsa/dsa_op.cpp \ + $$BOTAN_SRC/pubkey/elgamal/elg_core.cpp \ + $$BOTAN_SRC/pubkey/elgamal/elg_op.cpp \ + $$BOTAN_SRC/pubkey/elgamal/elgamal.cpp \ + $$BOTAN_SRC/pubkey/if_algo/if_algo.cpp \ + $$BOTAN_SRC/pubkey/if_algo/if_core.cpp \ + $$BOTAN_SRC/pubkey/if_algo/if_op.cpp \ + $$BOTAN_SRC/pubkey/keypair/keypair.cpp \ + $$BOTAN_SRC/pubkey/nr/nr.cpp \ + $$BOTAN_SRC/pubkey/nr/nr_core.cpp \ + $$BOTAN_SRC/pubkey/nr/nr_op.cpp \ + $$BOTAN_SRC/pubkey/pk_algs.cpp \ + $$BOTAN_SRC/pubkey/pk_codecs/pkcs8.cpp \ + $$BOTAN_SRC/pubkey/pk_codecs/x509_key.cpp \ + $$BOTAN_SRC/pubkey/pk_filts.cpp \ + $$BOTAN_SRC/pubkey/pk_keys.cpp \ + $$BOTAN_SRC/pubkey/pubkey.cpp \ + $$BOTAN_SRC/pubkey/pubkey_enums.cpp \ + $$BOTAN_SRC/pubkey/rsa/rsa.cpp \ + $$BOTAN_SRC/pubkey/rw/rw.cpp \ + $$BOTAN_SRC/rng/auto_rng/auto_rng.cpp \ + $$BOTAN_SRC/rng/hmac_rng/hmac_rng.cpp \ + $$BOTAN_SRC/rng/randpool/randpool.cpp \ + $$BOTAN_SRC/rng/rng.cpp \ + $$BOTAN_SRC/rng/x931_rng/x931_rng.cpp \ + $$BOTAN_SRC/s2k/pbkdf1/pbkdf1.cpp \ + $$BOTAN_SRC/s2k/pbkdf2/pbkdf2.cpp \ + $$BOTAN_SRC/s2k/pgps2k/pgp_s2k.cpp \ + $$BOTAN_SRC/s2k/s2k.cpp \ + $$BOTAN_SRC/selftest/selftest.cpp \ + $$BOTAN_SRC/stream/arc4/arc4.cpp \ + $$BOTAN_SRC/stream/salsa20/salsa20.cpp \ + $$BOTAN_SRC/stream/stream_cipher.cpp \ + $$BOTAN_SRC/stream/turing/tur_tab.cpp \ + $$BOTAN_SRC/stream/turing/turing.cpp \ + $$BOTAN_SRC/stream/wid_wake/wid_wake.cpp \ + $$BOTAN_SRC/sym_algo/symkey.cpp \ + $$BOTAN_SRC/timer/timer.cpp \ + $$BOTAN_SRC/utils/charset.cpp \ + $$BOTAN_SRC/utils/datastor/datastor.cpp \ + $$BOTAN_SRC/utils/exceptn.cpp \ + $$BOTAN_SRC/utils/mlock.cpp \ + $$BOTAN_SRC/utils/parsing.cpp \ + $$BOTAN_SRC/utils/ui.cpp \ + $$BOTAN_SRC/utils/util.cpp \ + $$BOTAN_SRC/utils/version.cpp + +win32 { +SOURCES += $$BOTAN_SRC/entropy/cryptoapi_rng/es_capi.cpp \ + $$BOTAN_SRC/entropy/win32_stats/es_win32.cpp \ + $$BOTAN_SRC/mutex/win32_crit_section/mux_win32.cpp \ + $$BOTAN_SRC/timer/win32_query_perf_ctr/tm_win32.cpp +} + +unix { + SOURCES += $$BOTAN_SRC/alloc/alloc_mmap/mmap_mem.cpp \ + $$BOTAN_SRC/cert/cvc/asn1_eac_str.cpp \ + $$BOTAN_SRC/cert/cvc/asn1_eac_tm.cpp \ + $$BOTAN_SRC/cert/cvc/cvc_ado.cpp \ + $$BOTAN_SRC/cert/cvc/cvc_ca.cpp \ + $$BOTAN_SRC/cert/cvc/cvc_cert.cpp \ + $$BOTAN_SRC/cert/cvc/cvc_req.cpp \ + $$BOTAN_SRC/cert/cvc/cvc_self.cpp \ + $$BOTAN_SRC/cert/cvc/ecdsa_sig.cpp \ + $$BOTAN_SRC/cert/cvc/signed_obj.cpp \ + $$BOTAN_SRC/entropy/dev_random/es_dev.cpp \ + $$BOTAN_SRC/entropy/egd/es_egd.cpp \ + $$BOTAN_SRC/entropy/proc_walk/es_ftw.cpp \ + $$BOTAN_SRC/entropy/unix_procs/es_unix.cpp \ + $$BOTAN_SRC/entropy/unix_procs/unix_cmd.cpp \ + $$BOTAN_SRC/entropy/unix_procs/unix_src.cpp \ + $$BOTAN_SRC/filters/fd_unix/fd_unix.cpp \ + $$BOTAN_SRC/math/gfpmath/curve_gfp.cpp \ + $$BOTAN_SRC/math/gfpmath/gfp_element.cpp \ + $$BOTAN_SRC/math/gfpmath/point_gfp.cpp \ + $$BOTAN_SRC/mutex/pthreads/mux_pthr.cpp \ + $$BOTAN_SRC/pubkey/ec_dompar/ec_dompar.cpp \ + $$BOTAN_SRC/pubkey/ecc_key/ecc_key.cpp \ + $$BOTAN_SRC/pubkey/ecdsa/ecdsa.cpp \ + $$BOTAN_SRC/pubkey/ecdsa/ecdsa_core.cpp \ + $$BOTAN_SRC/pubkey/ecdsa/ecdsa_op.cpp \ + $$BOTAN_SRC/pubkey/eckaeg/eckaeg.cpp \ + $$BOTAN_SRC/pubkey/eckaeg/eckaeg_core.cpp \ + $$BOTAN_SRC/pubkey/eckaeg/eckaeg_op.cpp \ + $$BOTAN_SRC/timer/gettimeofday/tm_unix.cpp +} + +linux*-g++* { + SOURCES += $$BOTAN_SRC/timer/posix_rt/tm_posix.cpp +} + +linux*-g++* { + LIBS += -lrt +} diff --git a/libqsystemtest/customtestcontrol.cpp b/libqsystemtest/customtestcontrol.cpp new file mode 100644 index 0000000..0ba2573 --- /dev/null +++ b/libqsystemtest/customtestcontrol.cpp @@ -0,0 +1,68 @@ +#include "customtestcontrol.h" + +#include <QDebug> +#include <QProcess> +#include <QApplication> + +using namespace Qt4Test; + +CustomTestControl::CustomTestControl() + : TestControl() +{ + +} + +CustomTestControl::~CustomTestControl() +{ + +} + +bool CustomTestControl::deviceConfiguration( QString &reply ) +{ + return false; +} + +bool CustomTestControl::startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ) +{ + QProcess proc; + QStringList args = arguments; + args.prepend(application); + static QByteArray startProcess = qgetenv("QTUITEST_START_PROCESS"); + if (startProcess.isEmpty()) { + qDebug() << QString("Could not start remote process '%1', QTUITEST_START_PROCESS not defined.").arg(application); + return false; + } + + proc.start(startProcess, args); + if (!proc.waitForFinished(10000)) { + proc.kill(); + if (!proc.waitForFinished(5000)) + return false; + } + + return true; +} + +bool CustomTestControl::killApplication( const QString &application, QString &reply ) +{ + // ensure that we stop any running remote applications + QProcess proc; + QStringList args; + args << application; + args << QString("-style=qtuitest"); + + static QByteArray stopProcess = qgetenv("QTUITEST_STOP_PROCESS"); + if (stopProcess.isEmpty()) { + qDebug() << QString("Could not stop remote process '%1', QTUITEST_STOP_PROCESS not defined.").arg(application); + return false; + } + + proc.start(stopProcess, args); + if (!proc.waitForFinished(10000)) { + proc.kill(); + if (!proc.waitForFinished(5000)) + return false; + } + return true; +} diff --git a/libqsystemtest/customtestcontrol.h b/libqsystemtest/customtestcontrol.h new file mode 100644 index 0000000..0cad4af --- /dev/null +++ b/libqsystemtest/customtestcontrol.h @@ -0,0 +1,23 @@ +#ifndef CUSTOMTESTCONTROL_H +#define CUSTOMTESTCONTROL_H + +#include "testcontrol.h" + +namespace Qt4Test { +class CustomTestControl : public TestControl +{ + Q_OBJECT +public: + CustomTestControl(); + virtual ~CustomTestControl(); + + bool deviceConfiguration( QString &reply ); + + bool startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ); + bool killApplication( const QString &application, QString &reply ); +}; + +} + +#endif // CUSTOMTESTCONTROL_H diff --git a/libqsystemtest/desktoptestcontrol.cpp b/libqsystemtest/desktoptestcontrol.cpp new file mode 100644 index 0000000..2529c5e --- /dev/null +++ b/libqsystemtest/desktoptestcontrol.cpp @@ -0,0 +1,73 @@ +#include "desktoptestcontrol.h" + +#include <QDebug> +#include <QProcess> + + +using namespace Qt4Test; + + +DesktopTestControl::DesktopTestControl() + : TestControl() +{ + proc = 0; +} + +DesktopTestControl::~DesktopTestControl() +{ + +} + +bool DesktopTestControl::deviceConfiguration( QString &reply ) +{ + return false; +} + +bool DesktopTestControl::startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ) +{ + proc = new Qt4Test::TestProcess(this); + + proc->setEnvironment(environment); +// FIXME proc->test = this; + QStringList args = arguments; + if (styleQtUITest) { + args << "-style"; + args << "qtuitest"; + } +/* + QByteArray defArgs = qgetenv("QTUITEST_DEFAULT_AUT_ARGS"); + if (defArgs.length()) { + QList<QByteArray> defaultArgs = defArgs.split(' '); + foreach (QByteArray arg, defaultArgs) { + args << arg; + } + } + // For WinCE it does not support env variables + args << "-autport" << QString::number(m_aut_port); +*/ + + proc->start(application, args); + if (!proc->waitForStarted()) { + reply = QString("Failed to start process '%1': %2").arg(application).arg(proc->errorString()); + delete proc; + return false; + } + return true; +} + +bool DesktopTestControl::killApplication( const QString &application, QString &reply ) +{ + return true; + + if (!proc) + return false; + + proc->terminate(); + if (!proc->waitForFinished(5000)) { + proc->kill(); + proc->waitForFinished(5000); + } + return true; +} + diff --git a/libqsystemtest/desktoptestcontrol.h b/libqsystemtest/desktoptestcontrol.h new file mode 100644 index 0000000..f8dd9dd --- /dev/null +++ b/libqsystemtest/desktoptestcontrol.h @@ -0,0 +1,119 @@ +#ifndef DESKTOPTESTCONTROL_H +#define DESKTOPTESTCONTROL_H + +#include "testcontrol.h" +#include "qsystemtest.h" + +#include <QProcess> + +namespace Qt4Test { + +class TestProcess : public QProcess +{ + Q_OBJECT + public: + TestProcess(QObject *parent = 0) + : QProcess(parent) + , env() + , test(0) + { + connect(this,SIGNAL(readyReadStandardError()),this,SLOT(error())); + connect(this,SIGNAL(readyReadStandardOutput()),this,SLOT(output())); + connect(this,SIGNAL(finished(int,QProcess::ExitStatus)), + this,SLOT(deleteLater())); + } + + QStringList env; + QSystemTest* test; + + private slots: + void output() + { + QByteArray text = readAllStandardOutput(); + if (!test) return; + + while (text.endsWith("\n")) text.chop(1); + QList<QByteArray> lines = text.split('\n'); + test->applicationStandardOutput(lines); + } + + void error() + { + QByteArray text = readAllStandardError(); + if (!test) return; + + while (text.endsWith("\n")) text.chop(1); + QList<QByteArray> lines = text.split('\n'); + test->applicationStandardError(lines); + } + + protected: + virtual void setupChildProcess() + { + foreach (QString const& e, env) { + int equals = e.indexOf('='); + if (equals == -1) continue; + QString key = e.left(equals); + QString value = e.mid(equals+1); + prependToEnv(key.toLocal8Bit(), value.toLocal8Bit()); + } + } + + private: + void prependToEnv(QByteArray const& key, QByteArray const& value) + { + // Environment variables which are a colon-separated list (like PATH) + static const QList<QByteArray> pathlike = QList<QByteArray>() + << "LD_LIBRARY_PATH" + ; + + // Environment variables which can be silently clobbered + static const QList<QByteArray> clobber = QList<QByteArray>() + << "DISPLAY" + ; + + QByteArray current = qgetenv(key.constData()); + QByteArray set = value; + if (!current.isEmpty()) { + if (pathlike.contains(key)) { + set = set + ":" + current; + } else if (clobber.contains(key)) { + } else { + // Cannot use qWarning because we are in a child process and we will pass + // through message handlers twice + fprintf(stderr, "Environment variable %s is already set (to \"%s\"); " + "qtuitestrunner will clobber it (with \"%s\") when starting test " + "process!" + ,key.constData() + ,current.constData() + ,set.constData() + ); + } + } +#ifndef Q_OS_WIN + setenv(key.constData(), set.constData(), 1); +#endif + } +}; + + +class DesktopTestControl : public TestControl +{ + Q_OBJECT +public: + DesktopTestControl(); + virtual ~DesktopTestControl(); + + bool deviceConfiguration( QString &reply ); + + bool startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ); + bool killApplication( const QString &application, QString &reply ); + +private: + TestProcess* proc; +}; + +} + +#endif // DESKTOPTESTCONTROL_H diff --git a/libqsystemtest/testdevicecontrol.cpp b/libqsystemtest/maemotestcontrol.cpp index 257dea0..07e5079 100644 --- a/libqsystemtest/testdevicecontrol.cpp +++ b/libqsystemtest/maemotestcontrol.cpp @@ -1,137 +1,51 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of Qt Creator. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "testdevicecontrol.h" - -#include <coreplugin/ssh/sshremoteprocess.h> - -#include <QDebug> -#include <QRegExp> +#include "maemotestcontrol.h" + #include <QTime> -#include <QApplication> #include <QTimer> +#include <QApplication> + +namespace Core { + class SshConnection; + class SshRemoteProcess; +} // namespace Core using namespace Core; namespace Qt4Test { -// ***************************************************************** - -TestDeviceControl::TestDeviceControl( Core::SshConnectionParameters &sshParam ) -{ - ssh_param = sshParam; -} - -TestDeviceControl::~TestDeviceControl() -{ - killApplications(); - - while (device_controls.count() > 0) - delete device_controls.takeFirst(); -} - -bool TestDeviceControl::deviceConfiguration( QString &reply ) -{ - MaemoTestDeviceControl ctrl(ssh_param); - return ctrl.deviceConfiguration(reply); -} - -bool TestDeviceControl::startApplication( const QString &application, - bool styleQtUITest, QString &reply ) -{ - MaemoTestDeviceControl *ctrl = new MaemoTestDeviceControl(ssh_param); - device_controls.append(ctrl); - if (ctrl->startApplication(application, styleQtUITest, reply)) { - started_applications += application; - return true; - } - return false; -} - -bool TestDeviceControl::killApplication( const QString &application, QString &reply ) -{ - MaemoTestDeviceControl *ctrl = new MaemoTestDeviceControl(ssh_param); - device_controls.append(ctrl); - return ctrl->killApplication(application, reply); -} - -void TestDeviceControl::killApplications() -{ - if (started_applications.count() == 0) - return; - - QString reply; - foreach (QString app, started_applications) { - killApplication(app, reply); - } - started_applications.clear(); -} - -// ***************************************************************** - -MaemoTestDeviceControl::MaemoTestDeviceControl( Core::SshConnectionParameters &sshParam ) : TestDeviceControl(sshParam) +MaemoTestControl::MaemoTestControl( Core::SshConnectionParameters &sshParam ) + : TestControl() { ssh_param = sshParam; control_mode = Idle; } -MaemoTestDeviceControl::~MaemoTestDeviceControl() +MaemoTestControl::~MaemoTestControl() { } -bool MaemoTestDeviceControl::deviceConfiguration( QString &reply ) +bool MaemoTestControl::deviceConfiguration( QString &reply ) { runBlockingCommand( ConfigCheck, "", 10000); reply = reply_txt; return reply_ok; } -bool MaemoTestDeviceControl::runCustomCommand( const QString &cmd, int timeout, QString &reply ) +bool MaemoTestControl::runCustomCommand( const QString &cmd, int timeout, QString &reply ) { runBlockingCommand( CustomCommand, cmd, timeout); reply = reply_txt; return reply_ok; } -bool MaemoTestDeviceControl::runCustomBlockingCommand( const QString &cmd, int timeout, QString &reply ) +bool MaemoTestControl::runCustomBlockingCommand( const QString &cmd, int timeout, QString &reply ) { runBlockingCommand( CustomBlockingCommand, cmd, timeout); reply = reply_txt; return reply_ok; } -void MaemoTestDeviceControl::runBlockingCommand( MaemoTestDeviceControlMode mode, const QString &cmd, int timeout) +void MaemoTestControl::runBlockingCommand( MaemoTestControlMode mode, const QString &cmd, int timeout) { reply_txt = ""; reply_ok = true; @@ -142,9 +56,11 @@ void MaemoTestDeviceControl::runBlockingCommand( MaemoTestDeviceControlMode mode cleanupConnection(); } -bool MaemoTestDeviceControl::startApplication( const QString &application, - bool styleQtUITest, QString &reply ) +bool MaemoTestControl::startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ) { + Q_UNUSED(environment); + Q_UNUSED(arguments); QString cmd = "run-standalone.sh " + application; if (styleQtUITest) cmd += " -style qtuitest"; @@ -153,16 +69,16 @@ bool MaemoTestDeviceControl::startApplication( const QString &application, return reply_ok; } -bool MaemoTestDeviceControl::killApplication( const QString &application, QString &reply ) +bool MaemoTestControl::killApplication( const QString &application, QString &reply ) { - if (m_testProcess) { - m_testProcess->kill(); - } +// if (m_testProcess) { +// m_testProcess->kill(); +// } return runCustomCommand( "killall " + application, 1000, reply); } -void MaemoTestDeviceControl::waitForCommandToFinish(int timeout) +void MaemoTestControl::waitForCommandToFinish(int timeout) { QTime t; t.start(); @@ -175,7 +91,7 @@ void MaemoTestDeviceControl::waitForCommandToFinish(int timeout) } } -bool MaemoTestDeviceControl::initConnection() +bool MaemoTestControl::initConnection() { if (m_testProcess) { reply_ok = false; @@ -196,7 +112,7 @@ bool MaemoTestDeviceControl::initConnection() return true; } -void MaemoTestDeviceControl::handleConnected() +void MaemoTestControl::handleConnected() { if (!m_connection) { reply_ok = false; @@ -215,10 +131,10 @@ void MaemoTestDeviceControl::handleConnected() m_testProcess = m_connection->createRemoteProcess(m_cmd.toUtf8()); } - connect(m_testProcess.data(), SIGNAL(closed(int)), this, - SLOT(handleProcessFinished(int))); + QObject::connect(m_testProcess.data(), SIGNAL(closed(int)), this, + SLOT(handleProcessFinished(int)), Qt::DirectConnection); connect(m_testProcess.data(), SIGNAL(outputAvailable(QByteArray)), this, - SLOT(processSshOutput(QByteArray))); + SLOT(processSshOutput(QByteArray)), Qt::DirectConnection); m_testProcess->start(); @@ -226,7 +142,7 @@ void MaemoTestDeviceControl::handleConnected() QTimer::singleShot(500,this,SLOT(cleanupConnection())); } -void MaemoTestDeviceControl::handleConnectionError() +void MaemoTestControl::handleConnectionError() { reply_ok = false; @@ -243,7 +159,7 @@ void MaemoTestDeviceControl::handleConnectionError() cleanupConnection(); } -void MaemoTestDeviceControl::handleProcessFinished(int exitStatus) +void MaemoTestControl::handleProcessFinished(int exitStatus) { Q_ASSERT(exitStatus == SshRemoteProcess::FailedToStart || exitStatus == SshRemoteProcess::KilledBySignal @@ -274,7 +190,7 @@ void MaemoTestDeviceControl::handleProcessFinished(int exitStatus) cleanupConnection(); } -void MaemoTestDeviceControl::cleanupConnection() +void MaemoTestControl::cleanupConnection() { if (m_testProcess) disconnect(m_testProcess.data(), 0, this, 0); @@ -285,12 +201,12 @@ void MaemoTestDeviceControl::cleanupConnection() m_connection.clear(); } -void MaemoTestDeviceControl::processSshOutput(const QByteArray &output) +void MaemoTestControl::processSshOutput(const QByteArray &output) { m_deviceTestOutput.append(QString::fromUtf8(output)); } -QString MaemoTestDeviceControl::parseOutput() +QString MaemoTestControl::parseOutput() { if (control_mode == ConfigCheck) { m_qtVersionOk = false; @@ -329,4 +245,4 @@ QString MaemoTestDeviceControl::parseOutput() return ""; } -} // namespace Qt4Test +} diff --git a/libqsystemtest/maemotestcontrol.h b/libqsystemtest/maemotestcontrol.h new file mode 100644 index 0000000..4866890 --- /dev/null +++ b/libqsystemtest/maemotestcontrol.h @@ -0,0 +1,54 @@ +#ifndef MAEMOTESTCONTROL_H +#define MAEMOTESTCONTROL_H + +#include "testcontrol.h" +#include <coreplugin/ssh/sshconnection.h> +#include <coreplugin/ssh/sshremoteprocess.h> + +namespace Qt4Test { +class MaemoTestControl : public TestControl +{ + Q_OBJECT +public: + MaemoTestControl( Core::SshConnectionParameters &sshParam ); + virtual ~MaemoTestControl(); + + bool deviceConfiguration( QString &reply ); + + bool startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ); + bool killApplication( const QString &application, QString &reply ); + +protected: + bool runCustomCommand( const QString &cmd, int timeout, QString &reply ); + bool runCustomBlockingCommand( const QString &cmd, int timeout, QString &reply ); + +private slots: + void cleanupConnection(); + + void processSshOutput(const QByteArray &output); + void handleConnected(); + void handleConnectionError(); + void handleProcessFinished(int exitStatus); + +private: + bool initConnection(); + QString parseOutput(); + void waitForCommandToFinish(int timeout); + + enum MaemoTestControlMode {Idle, ConfigCheck, CustomCommand, CustomBlockingCommand}; + MaemoTestControlMode control_mode; + void runBlockingCommand( MaemoTestControlMode mode, const QString &cmd, int timeout); + + QSharedPointer<Core::SshConnection> m_connection; + QSharedPointer<Core::SshRemoteProcess> m_testProcess; + Core::SshConnectionParameters ssh_param; + QString m_deviceTestOutput; + bool m_qtVersionOk; + bool reply_ok; + QString reply_txt; + QString m_cmd; +}; +} + +#endif // MAEMOTESTCONTROL_H diff --git a/libqsystemtest/meegotestcontrol.cpp b/libqsystemtest/meegotestcontrol.cpp new file mode 100644 index 0000000..2cfef89 --- /dev/null +++ b/libqsystemtest/meegotestcontrol.cpp @@ -0,0 +1,31 @@ +#include "meegotestcontrol.h" + +using namespace Qt4Test; + +MeeGoTestControl::MeeGoTestControl() + : TestControl() +{ + +} + +MeeGoTestControl::~MeeGoTestControl() +{ + +} + +bool MeeGoTestControl::deviceConfiguration( QString &reply ) +{ + return false; +} + +bool MeeGoTestControl::startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ) +{ + return false; +} + +bool MeeGoTestControl::killApplication( const QString &application, QString &reply ) +{ + return false; +} + diff --git a/libqsystemtest/meegotestcontrol.h b/libqsystemtest/meegotestcontrol.h new file mode 100644 index 0000000..6670899 --- /dev/null +++ b/libqsystemtest/meegotestcontrol.h @@ -0,0 +1,22 @@ +#ifndef MEEGOTESTCONTROL_H +#define MEEGOTESTCONTROL_H + +#include "testcontrol.h" + +namespace Qt4Test { +class MeeGoTestControl : public TestControl +{ + Q_OBJECT +public: + MeeGoTestControl(); + virtual ~MeeGoTestControl(); + + bool deviceConfiguration( QString &reply ); + + bool startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ); + bool killApplication( const QString &application, QString &reply ); +}; +} + +#endif // MEEGOTESTCONTROL_H diff --git a/libqsystemtest/qsystemtest.cpp b/libqsystemtest/qsystemtest.cpp index f6e0c36..f472166 100644 --- a/libqsystemtest/qsystemtest.cpp +++ b/libqsystemtest/qsystemtest.cpp @@ -218,8 +218,6 @@ bool QSystemTest::shouldFilterMessage(char const *msg) QSystemTest::QSystemTest() : QAbstractTest() , event_timer(0) - , m_aut() - , m_remote_aut() , m_test_app(0) , m_recorded_events_edit(0) , recorded_events_as_code(true) @@ -257,7 +255,7 @@ QSystemTest::QSystemTest() m_env.clear(); ssh_param.host = "127.0.0.1"; ssh_param.port = 22; - device_control = 0; + device_controller = 0; (void)qMetaTypeId<RecordEvent>(); (void)qMetaTypeId< QList<RecordEvent> >(); @@ -271,41 +269,10 @@ QSystemTest::QSystemTest() */ QSystemTest::~QSystemTest() { - if (device_control) - device_control->killApplications(); + if (device_controller) + device_controller->killApplications(); - while (m_aut.count()) { - QPointer<QProcess> proc = m_aut.takeFirst(); - if (proc) { - proc->terminate(); - if (!proc->waitForFinished(5000)) { - proc->kill(); - proc->waitForFinished(5000); - } - delete proc; - } - } - // ensure that we stop any running remote applications - if (runsOnDevice()){ - QProcess proc; - while (m_remote_aut.count()) { - QStringList args; - QString aut = m_remote_aut.takeFirst(); - args << aut; - qWarning(QString("Stopping remote process %1").arg(aut).toLatin1().constData()); - static QByteArray stopProcess = qgetenv("QTUITEST_STOP_PROCESS"); - if (stopProcess.isEmpty()) { - fail(QString("Could not stop remote process '%1', QTUITEST_STOP_PROCESS not defined.").arg(aut)); - } - proc.start(stopProcess, args); - if (!proc.waitForFinished(10000)) { - proc.kill(); - proc.waitForFinished(5000); - } - } - } - - delete device_control; + delete device_controller; delete event_timer; delete m_test_app; delete m_qtest_ide; @@ -313,10 +280,11 @@ QSystemTest::~QSystemTest() delete expected_msg_boxes.takeFirst(); } -void QSystemTest::setConnectionParameters( Core::SshConnectionParameters param ) +void QSystemTest::setConnectionParameters( Qt4Test::TestController::TestDeviceType &type, + Core::SshConnectionParameters param ) { ssh_param = param; - device_control = new Qt4Test::TestDeviceControl(param); + device_controller = new Qt4Test::TestController( type, ¶m); } /*! @@ -1568,93 +1536,6 @@ void QSystemTest::setSetting( const QString &organization, const QString &applic static QStringList filter = QStringList(); -class TestProcess : public QProcess -{ - Q_OBJECT - public: - TestProcess(QObject *parent = 0) - : QProcess(parent) - , env() - , test(0) - { - connect(this,SIGNAL(readyReadStandardError()),this,SLOT(error())); - connect(this,SIGNAL(readyReadStandardOutput()),this,SLOT(output())); - connect(this,SIGNAL(finished(int,QProcess::ExitStatus)), - this,SLOT(deleteLater())); - } - - QStringList env; - QSystemTest* test; - - private slots: - void output() - { - QByteArray text = readAllStandardOutput(); - if (!test) return; - - while (text.endsWith("\n")) text.chop(1); - QList<QByteArray> lines = text.split('\n'); - test->applicationStandardOutput(lines); - } - - void error() - { - QByteArray text = readAllStandardError(); - if (!test) return; - - while (text.endsWith("\n")) text.chop(1); - QList<QByteArray> lines = text.split('\n'); - test->applicationStandardError(lines); - } - - protected: - virtual void setupChildProcess() - { - foreach (QString const& e, env) { - int equals = e.indexOf('='); - if (equals == -1) continue; - QString key = e.left(equals); - QString value = e.mid(equals+1); - prependToEnv(key.toLocal8Bit(), value.toLocal8Bit()); - } - } - - private: - void prependToEnv(QByteArray const& key, QByteArray const& value) - { - // Environment variables which are a colon-separated list (like PATH) - static const QList<QByteArray> pathlike = QList<QByteArray>() - << "LD_LIBRARY_PATH" - ; - - // Environment variables which can be silently clobbered - static const QList<QByteArray> clobber = QList<QByteArray>() - << "DISPLAY" - ; - - QByteArray current = qgetenv(key.constData()); - QByteArray set = value; - if (!current.isEmpty()) { - if (pathlike.contains(key)) { - set = set + ":" + current; - } else if (clobber.contains(key)) { - } else { - // Cannot use qWarning because we are in a child process and we will pass - // through message handlers twice - fprintf(stderr, "Environment variable %s is already set (to \"%s\"); " - "qtuitestrunner will clobber it (with \"%s\") when starting test " - "process!" - ,key.constData() - ,current.constData() - ,set.constData() - ); - } - } -#ifndef Q_OS_WIN - setenv(key.constData(), set.constData(), 1); -#endif - } -}; /*! \internal */ void QSystemTest::applicationStandardOutput(QList<QByteArray> const& lines) @@ -2314,155 +2195,50 @@ void QSystemTest::startApplication( const QString &application, const QStringLis return; } - QString app = processEnvironment(application); - QStringList args = processEnvironment(arguments); + QString app = application; + QStringList args = arguments; if (!runsOnDevice()) { + if (!device_controller) + device_controller = new Qt4Test::TestController(Qt4Test::TestController::Desktop); + + args = processEnvironment(arguments); + app = processEnvironment(application); app = which(app); if (app.isEmpty()) { fail(QString("Application '%1' not found in PATH (%2)").arg(application).arg(PATH())); return; } - // Running locally - if (!(flags & BackgroundCurrentApplication)) { - // If we aren't backgrounding the current app, then we want to kill it. - while (m_aut.count()) { - QPointer<QProcess> aut = m_aut.takeFirst(); - if (aut) { - aut->terminate(); - if (!aut->waitForFinished(5000)) { - aut->kill(); - aut->waitForFinished(5000); - } - delete aut; - } - } - } - - TestProcess* proc = new TestProcess(this); -#ifdef QTCREATOR_QTEST - proc->setEnvironment(m_env); -#else - proc->env = m_env; - proc->env << QString("QTUITEST_PORT=%1").arg(m_aut_port); -#endif - - proc->test = this; - - #ifdef Q_OS_MAC - args << QString("-style=qtuitest"); - #elif defined Q_OS_WIN - args << QString("-style=qtuitest"); - #elif defined Q_OS_UNIX - args << QString("-style=qtuitest"); - #endif - - // setup configuration for target, used by configTarget() later - QByteArray defTargetID = qgetenv("QTUITEST_TARGETID"); - if (!defTargetID.isEmpty()) - m_targetID = QString(defTargetID); - - QByteArray defArgs = qgetenv("QTUITEST_DEFAULT_AUT_ARGS"); - if (defArgs.length()) { - QList<QByteArray> defaultArgs = defArgs.split(' '); - foreach (QByteArray arg, defaultArgs) { - args << arg; - } - } - // For WinCE it does not support env variables - args << "-autport" << QString::number(m_aut_port); - - proc->start(app, args); - if (!proc->waitForStarted()) { - fail(QString("Failed to start process '%1': %2").arg(app).arg(proc->errorString())); - delete proc; - return; - } - - // Give it a little time for the slave to come up. - wait(100); - - if (!connectToAut(timeout)) { - fail(QString("Could not connect to process '%1'.").arg(app)); - proc->terminate(); - proc->waitForFinished(5000); - proc->kill(); - delete proc; - return; - } - m_aut << QPointer<QProcess>(proc); - configTarget(); - } else { - // Running on device - - if (!device_control) - device_control = new Qt4Test::TestDeviceControl(ssh_param); - - QProcess proc; - - if (!(flags & BackgroundCurrentApplication)) { - // If we aren't backgrounding the current app, then we want to kill it. -/* - while (m_remote_aut.count()) { - QString aut = m_remote_aut.takeFirst(); - QStringList args; - args << aut; - qWarning(QString("Stopping remote process %1").arg(aut).toLatin1().constData()); - static QByteArray stopProcess = qgetenv("QTUITEST_STOP_PROCESS"); - if (stopProcess.isEmpty()) { - fail(QString("Could not stop remote process '%1', QTUITEST_STOP_PROCESS not defined.").arg(app)); - } - proc.start(stopProcess, args); - if (!proc.waitForFinished(10000)) { - proc.kill(); - proc.waitForFinished(5000); - } - m_test_app->disconnect(); - } -*/ - } - if (device_control) - device_control->killApplications(); + if (!device_controller) + device_controller = new Qt4Test::TestController(Qt4Test::TestController::Maemo, &ssh_param); + } - // setup configuration for target, used by configTarget() later - QByteArray defTargetID = qgetenv("QTUITEST_TARGETID"); - if (!defTargetID.isEmpty()) - m_targetID = QString(defTargetID); + if (device_controller) + device_controller->killApplications(); -/* - args.prepend(app); - static QByteArray startProcess = qgetenv("QTUITEST_START_PROCESS"); - if (startProcess.isEmpty()) { - fail(QString("Could not start remote process '%1', QTUITEST_START_PROCESS not defined.").arg(app)); - } - proc.start(startProcess, args); - if (!proc.waitForFinished(10000)) { - proc.kill(); - proc.waitForFinished(5000); - } -*/ + // setup configuration for target, used by configTarget() later + QByteArray defTargetID = qgetenv("QTUITEST_TARGETID"); + if (!defTargetID.isEmpty()) + m_targetID = QString(defTargetID); - QString reply; -// control.deviceConfiguration(reply); -#ifdef QTCREATOR_QTEST -// testOutputPane()->append(reply); -#endif - - if (device_control) { - device_control->startApplication(application, true, reply); + QString reply; + if (device_controller) { + device_controller->startApplication(app, args, true, m_env, reply); #ifdef QTCREATOR_QTEST testOutputPane()->append(reply); #endif - } + } - if (!connectToAut(timeout)) { - fail(QString("Could not connect to remote process '%1'.").arg(app)); - } - m_remote_aut << app; - configTarget(); + // Give it a little time for the slave to come up. + wait(100); + + if (!connectToAut(timeout)) { + device_controller->killApplications(); + fail(QString("Could not connect to remote process '%1'.").arg(app)); } + configTarget(); } /*! @@ -3778,5 +3554,3 @@ void QSystemTest::configTarget() The Number type as documented in ECMA-262, section 15.7. */ - -#include "qsystemtest.moc" diff --git a/libqsystemtest/qsystemtest.h b/libqsystemtest/qsystemtest.h index b2add54..9d21db4 100644 --- a/libqsystemtest/qsystemtest.h +++ b/libqsystemtest/qsystemtest.h @@ -46,7 +46,7 @@ #include "qtestprotocol_p.h" #include "qtestide.h" #include "recordevent_p.h" -#include <testdevicecontrol.h> +#include <testcontrol.h> #include <QStringList> #include <QDir> @@ -389,7 +389,10 @@ public slots: void resetEventTimer(); public: - void setConnectionParameters( Core::SshConnectionParameters param ); + void setConnectionParameters( Qt4Test::TestController::TestDeviceType &type, + Core::SshConnectionParameters param ); + virtual void applicationStandardOutput(QList<QByteArray> const&); + virtual void applicationStandardError(QList<QByteArray> const&); protected slots: void abortPrompt(); @@ -401,9 +404,6 @@ protected: const QStringList &environment); virtual void processCommandLine(QStringList&); - virtual void applicationStandardOutput(QList<QByteArray> const&); - virtual void applicationStandardError(QList<QByteArray> const&); - bool connectToAut(int timeout = 10000); void disconnectFromAut(); bool isConnected() const; @@ -487,8 +487,6 @@ private: QMap<QString, int> m_filteredMessages; QTime *event_timer; - QList<QPointer<QProcess> > m_aut; - QStringList m_remote_aut; QTime key_hold_started; QSystemTestMaster *m_test_app; QTestMessage m_error_msg; @@ -533,7 +531,7 @@ private: bool isConnected(); // the following parameters are used to start an Application_Under_Test - Qt4Test::TestDeviceControl *device_control; + Qt4Test::TestController *device_controller; Core::SshConnectionParameters ssh_param; quint16 m_aut_port; bool m_keep_aut; diff --git a/libqsystemtest/symbiantestcontrol.cpp b/libqsystemtest/symbiantestcontrol.cpp new file mode 100644 index 0000000..d1586bc --- /dev/null +++ b/libqsystemtest/symbiantestcontrol.cpp @@ -0,0 +1,31 @@ +#include "symbiantestcontrol.h" + +using namespace Qt4Test; + +SymbianTestControl::SymbianTestControl() + : TestControl() +{ + +} + +SymbianTestControl::~SymbianTestControl() +{ + +} + +bool SymbianTestControl::deviceConfiguration( QString &reply ) +{ + return false; +} + +bool SymbianTestControl::startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ) +{ + return false; +} + +bool SymbianTestControl::killApplication( const QString &application, QString &reply ) +{ + return false; +} + diff --git a/libqsystemtest/symbiantestcontrol.h b/libqsystemtest/symbiantestcontrol.h new file mode 100644 index 0000000..2b273ab --- /dev/null +++ b/libqsystemtest/symbiantestcontrol.h @@ -0,0 +1,22 @@ +#ifndef SYMBIANTESTCONTROL_H +#define SYMBIANTESTCONTROL_H + +#include "testcontrol.h" + +namespace Qt4Test { +class SymbianTestControl : public TestControl +{ + Q_OBJECT +public: + SymbianTestControl(); + virtual ~SymbianTestControl(); + + bool deviceConfiguration( QString &reply ); + + bool startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ); + bool killApplication( const QString &application, QString &reply ); +}; +} + +#endif // SYMBIANTESTCONTROL_H diff --git a/libqsystemtest/testcontrol.cpp b/libqsystemtest/testcontrol.cpp new file mode 100644 index 0000000..54ae0be --- /dev/null +++ b/libqsystemtest/testcontrol.cpp @@ -0,0 +1,140 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of Qt Creator. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "testcontrol.h" +#include "desktoptestcontrol.h" +#include "customtestcontrol.h" +#include "maemotestcontrol.h" +#include "meegotestcontrol.h" +#include "symbiantestcontrol.h" + +#include <QDebug> +#include <QRegExp> +#include <QTime> +#include <QApplication> +#include <QTimer> + +namespace Core { + class SshConnection; + class SshRemoteProcess; +} // namespace Core + +using namespace Core; + +namespace Qt4Test { + +TestControl::TestControl() +{ + +} + +TestControl::~TestControl() +{ + +} + +TestController::TestController( TestDeviceType type, Core::SshConnectionParameters *sshParam ) +{ + if (sshParam) ssh_param = *sshParam; + test_device_type = type; +} + +TestController::~TestController() +{ + killApplications(); + + while (device_controls.count() > 0) + delete device_controls.takeFirst(); +} + +TestControl* TestController::controlFactory() +{ + if (test_device_type == Maemo) + return new MaemoTestControl(ssh_param); + else if (test_device_type == Desktop) + return new DesktopTestControl(); + else if (test_device_type == MeeGo) + return new MeeGoTestControl(); + else if (test_device_type == Custom) + return new CustomTestControl(); + else if (test_device_type == Symbian) + return new SymbianTestControl(); + return 0; +} + +bool TestController::deviceConfiguration( QString &reply ) +{ + TestControl *ctrl = controlFactory(); + bool ok = (ctrl && ctrl->deviceConfiguration(reply)); + delete ctrl; + return ok; +} + +bool TestController::startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ) +{ + TestControl *ctrl = controlFactory(); + if (ctrl) { + device_controls.append(ctrl); + if (ctrl->startApplication(application, arguments, styleQtUITest, environment, reply)) { + started_applications += application; + return true; + } + } + return false; +} + +bool TestController::killApplication( const QString &application, QString &reply ) +{ + TestControl *ctrl = controlFactory(); + if (ctrl) { + device_controls.append(ctrl); + return ctrl->killApplication(application, reply); + } + return false; +} + +void TestController::killApplications() +{ + if (started_applications.count() == 0) + return; + + QString reply; + foreach (QString app, started_applications) { + killApplication(app, reply); + } + started_applications.clear(); +} + +} // namespace Qt4Test diff --git a/libqsystemtest/testdevicecontrol.h b/libqsystemtest/testcontrol.h index 097451a..fba2e89 100644 --- a/libqsystemtest/testdevicecontrol.h +++ b/libqsystemtest/testcontrol.h @@ -32,8 +32,8 @@ ** ****************************************************************************/ -#ifndef TESTDEVICECONTROL_H -#define TESTDEVICECONTROL_H +#ifndef TESTCONTROL_H +#define TESTCONTROL_H #include <coreplugin/ssh/sshconnection.h> @@ -41,85 +41,53 @@ #include <QHash> #include <QStringList> -namespace Core { - class SshConnection; - class SshRemoteProcess; -} // namespace Core - namespace Qt4Test { -class MaemoTestDeviceControl; +class TestControl : public QObject +{ + Q_OBJECT +public: + TestControl(); + virtual ~TestControl(); + + virtual bool deviceConfiguration( QString &reply ) = 0; + virtual bool startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ) = 0; + virtual bool killApplication( const QString &application, QString &reply ) = 0; +}; /** * A class that can communicate with a device, using a secure connection. */ -class TestDeviceControl : public QObject +class TestController : public QObject { Q_OBJECT public: - explicit TestDeviceControl( Core::SshConnectionParameters &sshParam ); - ~TestDeviceControl(); + enum TestDeviceType {Desktop, Maemo, MeeGo, Custom, Symbian}; + TestController( TestDeviceType type, Core::SshConnectionParameters *sshParam = 0 ); + virtual ~TestController(); - enum TestDeviceControlMode {Idle, ConfigCheck, CustomCommand, CustomBlockingCommand}; + enum TestControlMode {Idle, ConfigCheck, CustomCommand, CustomBlockingCommand}; bool deviceConfiguration( QString &reply ); - bool startApplication( const QString &application, - bool styleQtUITest, QString &reply ); + bool startApplication( const QString &application, const QStringList &arguments, + bool styleQtUITest, const QStringList &environment, QString &reply ); bool killApplication( const QString &application, QString &reply ); void killApplications(); protected: Core::SshConnectionParameters ssh_param; + TestDeviceType test_device_type; + + TestControl* controlFactory(); private: - QList<MaemoTestDeviceControl*> device_controls; + QList<TestControl*> device_controls; QStringList started_applications; }; -class MaemoTestDeviceControl : public TestDeviceControl -{ - Q_OBJECT -public: - explicit MaemoTestDeviceControl( Core::SshConnectionParameters &sshParam ); - ~MaemoTestDeviceControl(); - - bool deviceConfiguration( QString &reply ); - - bool startApplication( const QString &application, - bool styleQtUITest, QString &reply ); - bool killApplication( const QString &application, QString &reply ); - -protected: - bool runCustomCommand( const QString &cmd, int timeout, QString &reply ); - bool runCustomBlockingCommand( const QString &cmd, int timeout, QString &reply ); - -private slots: - void cleanupConnection(); - - void processSshOutput(const QByteArray &output); - void handleConnected(); - void handleConnectionError(); - void handleProcessFinished(int exitStatus); - -private: - bool initConnection(); - QString parseOutput(); - void waitForCommandToFinish(int timeout); - - enum MaemoTestDeviceControlMode {Idle, ConfigCheck, CustomCommand, CustomBlockingCommand}; - MaemoTestDeviceControlMode control_mode; - void runBlockingCommand( MaemoTestDeviceControlMode mode, const QString &cmd, int timeout); - - QSharedPointer<Core::SshConnection> m_connection; - QSharedPointer<Core::SshRemoteProcess> m_testProcess; - QString m_deviceTestOutput; - bool m_qtVersionOk; - bool reply_ok; - QString reply_txt; - QString m_cmd; -}; } // namespace Qt4Test -#endif // TESTDEVICECONTROL_H +#endif // TESTCONTROL_H diff --git a/libqtslave/libqtslave.pro b/libqtslave/libqtslave.pro index bd7e992..da568cb 100644 --- a/libqtslave/libqtslave.pro +++ b/libqtslave/libqtslave.pro @@ -1,21 +1,13 @@ -VPATH+=$$PWD -INCLUDEPATH+=$$PWD - -HEADERS += \ - qtestslave.h \ - qtestslaveglobal.h \ - qtestwidgets.h - -SOURCES += \ - qtestslave.cpp \ - qtestwidgets.cpp - TEMPLATE=lib -INCLUDEPATH+=$$SRCROOT/libqtuitest +VPATH+=$$PWD TARGET=qtslave TARGET=$$qtLibraryTarget($$TARGET) QT+=network DEFINES+=QTSLAVE_TARGET +INCLUDEPATH+=$$PWD + +include($$SRCROOT/libqtuitest/libqtuitest.pri) + # we need to set a MAEMO define since this is not yet in Qt maemo*{ DEFINES+=Q_OS_MAEMO @@ -44,14 +36,19 @@ symbian { } win32 { - CONFIG(debug,debug|release): LIBS+=-L$$BUILDROOT/libqtuitest -lqtuitestd - CONFIG(release,debug|release):LIBS+=-L$$BUILDROOT/libqtuitest -lqtuitest target.path=$$[QT_INSTALL_BINS] INSTALLS+=target } -mac { - CONFIG(debug,debug|release): LIBS += -L$$BUILDROOT/lib -lqtuitest_debug - CONFIG(release,debug|release): LIBS += -L$$BUILDROOT/lib -lqtuitest -} +HEADERS += \ + qtestslave.h \ + qtestslaveglobal.h \ + qtestwidgets.h + +SOURCES += \ + qtestslave.cpp \ + qtestwidgets.cpp + +target.path += \ + /usr/local/lib
\ No newline at end of file diff --git a/libqtuitest/libqtuitest.pri b/libqtuitest/libqtuitest.pri new file mode 100644 index 0000000..92ac8cc --- /dev/null +++ b/libqtuitest/libqtuitest.pri @@ -0,0 +1,14 @@ +INCLUDEPATH += $$SRCROOT/libqtuitest + +symbian { + LIBS+=-L$$OUT_PWD/ -lqtuitest +} else mac { + CONFIG(debug,debug|release): LIBS += -L$$BUILDROOT/lib -lqtuitest_debug + CONFIG(release,debug|release): LIBS += -L$$BUILDROOT/lib -lqtuitest +} else win32 { +# LIBS+=$$OUT_PWD/../../lib/qtuitest.lib + CONFIG(debug,debug|release): LIBS+= -L$$BUILDROOT/libqtuitest -lqtuitestd + CONFIG(release,debug|release):LIBS+= -L$$BUILDROOT/libqtuitest -lqtuitest +} else { + LIBS += -L$$BUILDROOT/lib -lqtuitest_debug +} diff --git a/libqtuitest/libqtuitest.pro b/libqtuitest/libqtuitest.pro index 615577e..1d203fa 100644 --- a/libqtuitest/libqtuitest.pro +++ b/libqtuitest/libqtuitest.pro @@ -82,3 +82,7 @@ INCLUDEPATH+=$$PWD TARGET=qtuitest TARGET=$$qtLibraryTarget($$TARGET) CONFIG-=debug_and_release_target + + +target.path += \ + /usr/local/lib
\ No newline at end of file diff --git a/plugins/qtuitest_widgets/hbwidgets/hbwidgets.pro b/plugins/qtuitest_widgets/hbwidgets/hbwidgets.pro index fc85149..7599675 100644 --- a/plugins/qtuitest_widgets/hbwidgets/hbwidgets.pro +++ b/plugins/qtuitest_widgets/hbwidgets/hbwidgets.pro @@ -28,34 +28,30 @@ TEMPLATE=lib CONFIG+=plugin hb hb_install VPATH+=$$PWD INCLUDEPATH+=$$PWD -INCLUDEPATH+=$$SRCROOT/libqtuitest TARGET=hbwidgets TARGET=$$qtLibraryTarget($$TARGET) +include($$SRCROOT/libqtuitest/libqtuitest.pri) + unix:!symbian { MOC_DIR=$$OUT_PWD/.moc OBJECTS_DIR=$$OUT_PWD/.obj target.path=$$[QT_INSTALL_PLUGINS]/qtuitest_widgets INSTALLS+=target - LIBS+=-L$$BUILDROOT/lib -lqtuitest } symbian { TARGET.EPOCALLOWDLLDATA=1 MOC_DIR=$$OUT_PWD/moc OBJECTS_DIR=$$OUT_PWD/obj - LIBS+=-L$$OUT_PWD/ -lqtuitest } win32 { - CONFIG(debug,debug|release): LIBS+=-L$$BUILDROOT/lib -lqtuitestd - CONFIG(release,debug|release):LIBS+=-L$$BUILDROOT/lib -lqtuitest target.path=$$[QT_INSTALL_PLUGINS]/qtuitest_widgets INSTALLS+=target } -mac { - CONFIG(debug,debug|release): LIBS += -L$$BUILDROOT/lib -lqtuitest_debug - CONFIG(release,debug|release): LIBS += -L$$BUILDROOT/lib -lqtuitest -} + +target.path += \ + /usr/local/lib
\ No newline at end of file diff --git a/plugins/qtuitest_widgets/qgraphicsviewwidgets/qgraphicsviewwidgets.pro b/plugins/qtuitest_widgets/qgraphicsviewwidgets/qgraphicsviewwidgets.pro index 98a9d13..7fe9221 100644 --- a/plugins/qtuitest_widgets/qgraphicsviewwidgets/qgraphicsviewwidgets.pro +++ b/plugins/qtuitest_widgets/qgraphicsviewwidgets/qgraphicsviewwidgets.pro @@ -18,36 +18,29 @@ TEMPLATE=lib CONFIG+=plugin VPATH+=$$PWD INCLUDEPATH+=$$PWD -INCLUDEPATH+=$$SRCROOT/libqtuitest TARGET=qgraphicsviewwidgets TARGET=$$qtLibraryTarget($$TARGET) +include($$SRCROOT/libqtuitest/libqtuitest.pri) + unix:!symbian { MOC_DIR=$$OUT_PWD/.moc OBJECTS_DIR=$$OUT_PWD/.obj target.path=$$[QT_INSTALL_PLUGINS]/qtuitest_widgets INSTALLS+=target - !mac { - LIBS+=-L$$BUILDROOT/lib -lqtuitest - } } symbian { TARGET.EPOCALLOWDLLDATA=1 MOC_DIR=$$OUT_PWD/moc OBJECTS_DIR=$$OUT_PWD/obj - LIBS+=-L$$OUT_PWD/ -lqtuitest } win32 { - CONFIG(debug,debug|release): LIBS+=-L$$BUILDROOT/libqtuitest -lqtuitestd - CONFIG(release,debug|release):LIBS+=-L$$BUILDROOT/libqtuitest -lqtuitest target.path=$$[QT_INSTALL_PLUGINS]/qtuitest_widgets INSTALLS+=target } -mac { - CONFIG(debug,debug|release): LIBS += -L$$BUILDROOT/lib -lqtuitest_debug - CONFIG(release,debug|release): LIBS += -L$$BUILDROOT/lib -lqtuitest -} +target.path += \ + /usr/local/lib
\ No newline at end of file diff --git a/plugins/qtuitest_widgets/qmlwidgets/qmlwidgets.pro b/plugins/qtuitest_widgets/qmlwidgets/qmlwidgets.pro index 0c606a1..f204724 100644 --- a/plugins/qtuitest_widgets/qmlwidgets/qmlwidgets.pro +++ b/plugins/qtuitest_widgets/qmlwidgets/qmlwidgets.pro @@ -23,23 +23,21 @@ MOC_DIR=$$OUT_PWD/.moc OBJECTS_DIR=$$OUT_PWD/.obj VPATH+=$$PWD INCLUDEPATH+=$$PWD -INCLUDEPATH+=$$SRCROOT/libqtuitest INCLUDEPATH+=$$SRCROOT/libqtwidgets QT+=declarative script opengl TARGET=qmlwidgets INCLUDEPATH+=$(HOME)/opengles2/SDKPackage/Builds/OGLES2/Include +include($$SRCROOT/libqtuitest/libqtuitest.pri) + unix:!symbian { MOC_DIR=$$OUT_PWD/.moc OBJECTS_DIR=$$OUT_PWD/.obj target.path=$$[QT_INSTALL_PLUGINS]/qtuitest_widgets INSTALLS+=target - LIBS+=-L$$BUILDROOT/lib -lqtuitest } win32 { - CONFIG(debug,debug|release): LIBS+=$$BUILDROOT/libdebug/qtuitest.lib - CONFIG(release,debug|release):LIBS+=$$BUILDROOT/librelease/qtuitest.lib target.path=$$[QT_INSTALL_PLUGINS]/qtuitest_widgets INSTALLS+=target } @@ -50,3 +48,6 @@ contains(QT_CONFIG, webkit) { HEADERS+=testdeclarativewebview.h } + +target.path += \ + /usr/local/lib
\ No newline at end of file diff --git a/plugins/qtuitest_widgets/qtuitest_widgets.pro b/plugins/qtuitest_widgets/qtuitest_widgets.pro index c9c1185..734a268 100644 --- a/plugins/qtuitest_widgets/qtuitest_widgets.pro +++ b/plugins/qtuitest_widgets/qtuitest_widgets.pro @@ -1,8 +1,10 @@ TEMPLATE=subdirs -SUBDIRS=\ +SUBDIRS +=\ qtwidgets !symbian:SUBDIRS +=qgraphicsviewwidgets enable_hbwidgets:SUBDIRS += hbwidgets -enable_qmlwidget:SUBDIRS += qmlwidgets + +# QtVersion >= 4.7? +#SUBDIRS += qmlwidgets diff --git a/plugins/qtuitest_widgets/qtwidgets/qtwidgets.pro b/plugins/qtuitest_widgets/qtwidgets/qtwidgets.pro index d95d9aa..f91e33e 100644 --- a/plugins/qtuitest_widgets/qtwidgets/qtwidgets.pro +++ b/plugins/qtuitest_widgets/qtwidgets/qtwidgets.pro @@ -65,18 +65,16 @@ TEMPLATE=lib CONFIG+=plugin VPATH+=$$PWD INCLUDEPATH+=$$PWD -INCLUDEPATH+=$$SRCROOT/libqtuitest TARGET=qtwidgets TARGET=$$qtLibraryTarget($$TARGET) +include($$SRCROOT/libqtuitest/libqtuitest.pri) + unix:!symbian { MOC_DIR=$$OUT_PWD/.moc OBJECTS_DIR=$$OUT_PWD/.obj target.path=$$[QT_INSTALL_PLUGINS]/qtuitest_widgets INSTALLS+=target - !mac { - LIBS+=-L$$BUILDROOT/lib/ -lqtuitest - } } symbian { @@ -84,24 +82,20 @@ symbian { TARGET.CAPABILITY += AllFiles ReadDeviceData ReadUserData SwEvent WriteUserData NetworkServices MOC_DIR=$$OUT_PWD/moc OBJECTS_DIR=$$OUT_PWD/obj - LIBS+=-lqtuitest.lib -lws32 -leuser -lcone + LIBS+= -lws32 -leuser -lcone } win32 { - CONFIG(debug,debug|release): LIBS+=-L$$BUILDROOT/libqtuitest -lqtuitestd - CONFIG(release,debug|release):LIBS+=-L$$BUILDROOT/libqtuitest -lqtuitest target.path=$$[QT_INSTALL_PLUGINS]/qtuitest_widgets INSTALLS+=target } -mac { - CONFIG(debug,debug|release): LIBS += -L$$BUILDROOT/lib -lqtuitest_debug - CONFIG(release,debug|release): LIBS += -L$$BUILDROOT/lib -lqtuitest -} - contains(QT_CONFIG, webkit) { QT+=webkit SOURCES+=testwebview.cpp HEADERS+=testwebview.h } + +target.path += \ + /usr/local/lib
\ No newline at end of file diff --git a/plugins/styles/qtuitest/qtuitest.pro b/plugins/styles/qtuitest/qtuitest.pro index 56343fe..6a567f5 100644 --- a/plugins/styles/qtuitest/qtuitest.pro +++ b/plugins/styles/qtuitest/qtuitest.pro @@ -6,17 +6,18 @@ TARGET=qtuiteststyle TARGET=$$qtLibraryTarget($$TARGET) QT+=network INCLUDEPATH+=$$SRCROOT/libqtslave -INCLUDEPATH+=$$SRCROOT/libqtuitest INCLUDEPATH+=$$SRCROOT DEPENDPATH+=$$SRCROOT +include($$SRCROOT/libqtuitest/libqtuitest.pri) + unix:!symbian { MOC_DIR=$$OUT_PWD/.moc OBJECTS_DIR=$$OUT_PWD/.obj target.path=$$[QT_INSTALL_PLUGINS]/styles INSTALLS+=target !mac { - LIBS+=-L$$BUILDROOT/lib -lqtslave -lqtuitest + LIBS+=-L$$BUILDROOT/lib -lqtslave } } @@ -25,20 +26,23 @@ symbian { TARGET.CAPABILITY += AllFiles ReadDeviceData ReadUserData SwEvent WriteUserData NetworkServices MOC_DIR=$$OUT_PWD/moc OBJECTS_DIR=$$OUT_PWD/obj - LIBS+=-lqtuitest.lib -lqtslave.lib -lws32 -leuser -lcone + LIBS+= -lqtslave.lib -lws32 -leuser -lcone } mac { - CONFIG(debug,debug|release): LIBS += -L$$BUILDROOT/lib -lqtslave_debug -lqtuitest_debug - CONFIG(release,debug|release): LIBS += -L$$BUILDROOT/lib -lqtslave -lqtuitest + CONFIG(debug,debug|release): LIBS += -L$$BUILDROOT/lib -lqtslave_debug + CONFIG(release,debug|release): LIBS += -L$$BUILDROOT/lib -lqtslave target.path=$$[QT_INSTALL_PLUGINS]/styles INSTALLS+=target } win32 { - CONFIG(debug,debug|release): LIBS+=-L$$BUILDROOT/libqtuitest -L$$BUILDROOT/libqtslave/debug -lqtuitestd -lqtslaved - CONFIG(release,debug|release):LIBS+=-L$$BUILDROOT/libqtuitest -L$$BUILDROOT/libqtslave/release -lqtuitest -lqtslave + CONFIG(debug,debug|release): LIBS+= -L$$BUILDROOT/libqtslave/debug -lqtslaved + CONFIG(release,debug|release):LIBS+= -L$$BUILDROOT/libqtslave/release -lqtslave target.path=$$[QT_INSTALL_PLUGINS]/styles INSTALLS+=target } + +target.path += \ + /usr/local/lib
\ No newline at end of file diff --git a/qtbindings/qtscript_core/qtscript_core.pro b/qtbindings/qtscript_core/qtscript_core.pro index 3eec767..c21feb5 100644 --- a/qtbindings/qtscript_core/qtscript_core.pro +++ b/qtbindings/qtscript_core/qtscript_core.pro @@ -7,3 +7,10 @@ symbian { TARGET.EPOCALLOWDLLDATA=1 } + + +target.path += \ + /usr/local/lib + +INSTALLS += \ + target
\ No newline at end of file diff --git a/qtuitest-for-creator.pro b/qtuitest-for-creator.pro deleted file mode 100644 index fdf8184..0000000 --- a/qtuitest-for-creator.pro +++ /dev/null @@ -1,6 +0,0 @@ -TEMPLATE=subdirs -SUBDIRS+=libqtuitest libqtslave plugins qtbindings libqsystemtest interpreter -CONFIG+=ordered - -!no_tests:SUBDIRS+=tests - diff --git a/qtuitest-for-target.pro b/qtuitest-for-target.pro new file mode 100644 index 0000000..1f69ff7 --- /dev/null +++ b/qtuitest-for-target.pro @@ -0,0 +1,7 @@ +TEMPLATE=subdirs +SUBDIRS+=libqtuitest libqtslave plugins qtbindings +CONFIG+=ordered + +!no_tests:SUBDIRS+=tests + +include(qtuitest.pri) diff --git a/qtuitest-host.pri b/qtuitest-host.pri index 926de33..246e162 100644 --- a/qtuitest-host.pri +++ b/qtuitest-host.pri @@ -1,3 +1,11 @@ +# +# +# This project file is to be used to include (parts of QtUITest) into Creator. +# Basically we include the desktop side of QSystem test + associated classes +# and build them inside the Qt4Test plugin +# +# + DEFINES += QTUITESTRUNNER_TARGET QTUITEST DEFINES += QSYSTEMTEST_TARGET QT+=script network @@ -35,7 +43,12 @@ HEADERS +=\ $$QTUITEST_SRC/libqsystemtest/qabstracttest.h \ $$QTUITEST_SRC/libqsystemtest/qsystemtest.h \ $$QTUITEST_SRC/libqsystemtest/qtestide.h \ - $$QTUITEST_SRC/libqsystemtest/testdevicecontrol.h + $$QTUITEST_SRC/libqsystemtest/testcontrol.h \ + $$QTUITEST_SRC/libqsystemtest/maemotestcontrol.h \ + $$QTUITEST_SRC/libqsystemtest/symbiantestcontrol.h \ + $$QTUITEST_SRC/libqsystemtest/desktoptestcontrol.h \ + $$QTUITEST_SRC/libqsystemtest/customtestcontrol.h \ + $$QTUITEST_SRC/libqsystemtest/meegotestcontrol.h SOURCES +=\ # $$QTUITEST_SRC/libqsystemtest/gracefulquit.cpp \ @@ -46,7 +59,12 @@ SOURCES +=\ $$QTUITEST_SRC/libqsystemtest/qsystemtest_p.cpp \ $$QTUITEST_SRC/libqsystemtest/qsystemtestmaster.cpp \ $$QTUITEST_SRC/libqsystemtest/qtestide.cpp \ - $$QTUITEST_SRC/libqsystemtest/testdevicecontrol.cpp + $$QTUITEST_SRC/libqsystemtest/testcontrol.cpp \ + $$QTUITEST_SRC/libqsystemtest/maemotestcontrol.cpp \ + $$QTUITEST_SRC/libqsystemtest/symbiantestcontrol.cpp \ + $$QTUITEST_SRC/libqsystemtest/desktoptestcontrol.cpp \ + $$QTUITEST_SRC/libqsystemtest/customtestcontrol.cpp \ + $$QTUITEST_SRC/libqsystemtest/meegotestcontrol.cpp HEADERS*=$$SEMI_PRIVATE_HEADERS $$PRIVATE_HEADERS diff --git a/qtuitest-orbit.pro b/qtuitest-orbit.pro deleted file mode 100644 index 76b431c..0000000 --- a/qtuitest-orbit.pro +++ /dev/null @@ -1,37 +0,0 @@ -TEMPLATE=subdirs -SUBDIRS=lib qtslave qtwidgets qgraphicsviewwidgets hbwidgets qtbindings libqsystemtest interpreter -CONFIG+=ordered - -system(echo DEFINES+=QTUITEST_IMAGE_PATH=$$OUT_PWD > $$OUT_PWD/.qmake.cache) -system(echo QMAKEFEATURES+=$$PWD/features:$HB_INSTALL_DIR:$HB_SOURCE_DIR >> $$OUT_PWD/.qmake.cache) - -unix:!mac:!symbian { - SUBDIRS+=style tests examples - system(if ! [ -e $$OUT_PWD/features ]; then ln -sf $$PWD/features $$OUT_PWD/features; fi) - system(echo SRCROOT=$(readlink -f $$PWD) >> $$OUT_PWD/.qmake.cache) - system(echo BUILDROOT=$(readlink -f $$OUT_PWD) >> $$OUT_PWD/.qmake.cache) -} - -mac { - SUBDIRS+=style tests - system(if ! [ -e $$OUT_PWD/features ]; then ln -sf $$PWD/features $$OUT_PWD/features; fi) - system(echo SRCROOT='$$PWD' >> $$OUT_PWD/.qmake.cache) - system(echo BUILDROOT='$$OUT_PWD' >> $$OUT_PWD/.qmake.cache) -} - -symbian { - SUBDIRS-=qgraphicsviewwidgets qtbindings libqsystemtest interpreter - SUBDIRS+=style - system(echo SRCROOT=$$PWD >> $$OUT_PWD/.qmake.cache) - system(echo BUILDROOT=$$OUT_PWD >> $$OUT_PWD/.qmake.cache) -} - -win32 { - SUBDIRS+=style tests - WIN_PWD=$$replace(PWD,/,\) - WIN_OUT_PWD=$$replace(OUT_PWD,/,\) - system(xcopy $$WIN_PWD\features $$WIN_OUT_PWD\features /E /I /D /Y) - system(echo SRCROOT=$$PWD >> $$OUT_PWD/.qmake.cache) - system(echo BUILDROOT=$$OUT_PWD >> $$OUT_PWD/.qmake.cache) - system(echo INSTALLROOT=$$OUT_PWD/bin >> $$OUT_PWD/.qmake.cache) -} diff --git a/qtuitest-qml.pro b/qtuitest-qml.pro deleted file mode 100644 index 9aea5d8..0000000 --- a/qtuitest-qml.pro +++ /dev/null @@ -1,37 +0,0 @@ -TEMPLATE=subdirs -SUBDIRS=lib qtslave qtwidgets qmlwidgets qgraphicsviewwidgets qtbindings libqsystemtest interpreter -CONFIG+=ordered - -system(echo DEFINES+=QTUITEST_IMAGE_PATH=$$OUT_PWD > $$OUT_PWD/.qmake.cache) -system(echo QMAKEFEATURES+=$$PWD/features >> $$OUT_PWD/.qmake.cache) - -unix:!mac:!symbian { - SUBDIRS+=style tests examples - system(if ! [ -e $$OUT_PWD/features ]; then ln -sf $$PWD/features $$OUT_PWD/features; fi) - system(echo SRCROOT=$(readlink -f $$PWD) >> $$OUT_PWD/.qmake.cache) - system(echo BUILDROOT=$(readlink -f $$OUT_PWD) >> $$OUT_PWD/.qmake.cache) -} - -mac { - SUBDIRS+=style tests - system(if ! [ -e $$OUT_PWD/features ]; then ln -sf $$PWD/features $$OUT_PWD/features; fi) - system(echo SRCROOT='$$PWD' >> $$OUT_PWD/.qmake.cache) - system(echo BUILDROOT='$$OUT_PWD' >> $$OUT_PWD/.qmake.cache) -} - -symbian { - SUBDIRS-=qgraphicsviewwidgets qtbindings libqsystemtest interpreter - SUBDIRS+=style - system(echo SRCROOT=$$PWD >> $$OUT_PWD/.qmake.cache) - system(echo BUILDROOT=$$OUT_PWD >> $$OUT_PWD/.qmake.cache) -} - -win32 { - SUBDIRS+=style tests - WIN_PWD=$$replace(PWD,/,\) - WIN_OUT_PWD=$$replace(OUT_PWD,/,\) - system(xcopy $$WIN_PWD\features $$WIN_OUT_PWD\features /E /I /D /Y) - system(echo SRCROOT=$$PWD >> $$OUT_PWD/.qmake.cache) - system(echo BUILDROOT=$$OUT_PWD >> $$OUT_PWD/.qmake.cache) - system(echo INSTALLROOT=$$OUT_PWD/bin >> $$OUT_PWD/.qmake.cache) -} diff --git a/qtuitest.pro b/qtuitest.pri index 094590c..877fb75 100644 --- a/qtuitest.pro +++ b/qtuitest.pri @@ -1,13 +1,3 @@ -TEMPLATE=subdirs -CONFIG += ordered - -INCLUDEPATH += $$PWD -INCLUDEPATH += $$PWD/botan/build - -SUBDIRS += botan - -include(qtuitest-for-creator.pro) - system(echo QMAKEFEATURES+=$$PWD/features >> $$OUT_PWD/.qmake.cache) unix:!mac:!symbian { @@ -23,7 +13,6 @@ mac { } symbian { - SUBDIRS-=qtbindings libqsystemtest interpreter system(echo SRCROOT=$$PWD >> $$OUT_PWD/.qmake.cache) system(echo BUILDROOT=$$OUT_PWD >> $$OUT_PWD/.qmake.cache) } diff --git a/qtuitestrunner.pro b/qtuitestrunner.pro new file mode 100644 index 0000000..08b24a7 --- /dev/null +++ b/qtuitestrunner.pro @@ -0,0 +1,110 @@ +#RESOURCES += scripts.qrc +DEFINES += QTUITESTRUNNER_TARGET +TEMPLATE=app +VPATH+=$$PWD +QT+=script network +CONFIG+=qtestlib +TARGET=qtuitestrunner + +QTUITEST_SRC=$$PWD + +INCLUDEPATH+=$$PWD +INCLUDEPATH+=$$QTUITEST_SRC +INCLUDEPATH+=$$QTUITEST_SRC/libqtuitest +INCLUDEPATH+=$$QTUITEST_SRC/libqsystemtest +INCLUDEPATH+=$$QTUITEST_SRC/botan/build +INCLUDEPATH+=$$QTUITEST_SRC/coreplugin + +BOTAN_SRC=$$QTUITEST_SRC/botan/src +include($$BOTAN_SRC/botan.pri) + +HEADERS +=\ +# $$QTUITEST_SRC/libqsystemtest/gracefulquit.h\ + $$QTUITEST_SRC/libqtuitest/qtestprotocol_p.h\ + $$QTUITEST_SRC/libqtuitest/qtuitestelapsedtimer_p.h + + +SOURCES +=\ +# $$QTUITEST_SRC/libqsystemtest/gracefulquit.cpp\ + $$QTUITEST_SRC/libqtuitest/qtestprotocol.cpp\ + $$QTUITEST_SRC/libqtuitest/qtuitestelapsedtimer.cpp\ + $$QTUITEST_SRC/interpreter/main.cpp + +include(qtuitest-host.pri) + +HEADERS +=\ + $$QTUITEST_SRC/coreplugin/ssh/sftpchannel.h \ + $$QTUITEST_SRC/coreplugin/ssh/sftpchannel_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sftpdefs.h \ + $$QTUITEST_SRC/coreplugin/ssh/sftpincomingpacket_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sftpoperation_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sftpoutgoingpacket_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sftppacket_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshbotanconversions_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshcapabilities_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshchannel_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshchannelmanager_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshconnection.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshconnection_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshcryptofacility_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshdelayedsignal_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/ssherrors.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshexception_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshincomingpacket_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshkeyexchange_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshkeygenerator.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshoutgoingpacket_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshpacket_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshpacketparser_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshremoteprocess.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshremoteprocess_p.h \ + $$QTUITEST_SRC/coreplugin/ssh/sshsendfacility_p.h + +SOURCES +=\ + $$QTUITEST_SRC/coreplugin/ssh/sftpchannel.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sftpdefs.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sftpincomingpacket.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sftpoperation.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sftpoutgoingpacket.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sftppacket.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshcapabilities.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshchannel.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshchannelmanager.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshconnection.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshcryptofacility.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshdelayedsignal.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshincomingpacket.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshkeyexchange.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshkeygenerator.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshoutgoingpacket.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshpacket.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshpacketparser.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshremoteprocess.cpp \ + $$QTUITEST_SRC/coreplugin/ssh/sshsendfacility.cpp + +!symbian { + MOC_DIR=$$OUT_PWD/.moc + OBJECTS_DIR=$$OUT_PWD/.obj +# DESTDIR=$$HOME/bin + target.path=$$[QT_INSTALL_BINS] + INSTALLS+=target +} + +symbian { + TARGET.EPOCALLOWDLLDATA=1 + TARGET.CAPABILITY += AllFiles ReadDeviceData ReadUserData SwEvent WriteUserData + MOC_DIR=$$OUT_PWD/moc + OBJECTS_DIR=$$OUT_PWD/obj +} + +win32 { + target.path=$$[QT_INSTALL_BINS] + INSTALLS+=target + !equals(QMAKE_CXX, "g++") { + DEFINES+=strcasecmp=_stricmp + } +} + +mac { + CONFIG-=app_bundle +} diff --git a/tests/qtuitest/sys_assistant/sys_assistant.pro b/tests/qtuitest/sys_assistant/sys_assistant.pro index 79485c9..a057ba3 100644 --- a/tests/qtuitest/sys_assistant/sys_assistant.pro +++ b/tests/qtuitest/sys_assistant/sys_assistant.pro @@ -1,2 +1,9 @@ SOURCES=sys_assistant.qtt CONFIG+=systemtest + + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/sys_designer/sys_designer.pro b/tests/qtuitest/sys_designer/sys_designer.pro index a394b57..2fa97f5 100644 --- a/tests/qtuitest/sys_designer/sys_designer.pro +++ b/tests/qtuitest/sys_designer/sys_designer.pro @@ -1,2 +1,9 @@ SOURCES=sys_designer.qtt CONFIG+=systemtest + + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/sys_graphicsView/sys_graphicsView.pro b/tests/qtuitest/sys_graphicsView/sys_graphicsView.pro index c428705..cdae5b4 100644 --- a/tests/qtuitest/sys_graphicsView/sys_graphicsView.pro +++ b/tests/qtuitest/sys_graphicsView/sys_graphicsView.pro @@ -2,3 +2,10 @@ SOURCES=sys_graphicsView.qtt TESTAPPS=graphicsViewTest CONFIG+=systemtest + + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/sys_input/sys_input.pro b/tests/qtuitest/sys_input/sys_input.pro index e4f4b29..63c63f5 100644 --- a/tests/qtuitest/sys_input/sys_input.pro +++ b/tests/qtuitest/sys_input/sys_input.pro @@ -2,3 +2,10 @@ SOURCES=sys_input.qtt TESTAPPS=testapp1 testapp2 testapp3 CONFIG+=systemtest + + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/sys_linguist/sys_linguist.pro b/tests/qtuitest/sys_linguist/sys_linguist.pro index 37e8d88..6a9c6c3 100644 --- a/tests/qtuitest/sys_linguist/sys_linguist.pro +++ b/tests/qtuitest/sys_linguist/sys_linguist.pro @@ -1,3 +1,10 @@ SOURCES=sys_linguist.qtt CONFIG+=systemtest + + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/testapps/fileDialogSaveApp/fileDialogSaveApp.pro b/tests/qtuitest/testapps/fileDialogSaveApp/fileDialogSaveApp.pro index 00202d6..cc8006e 100644 --- a/tests/qtuitest/testapps/fileDialogSaveApp/fileDialogSaveApp.pro +++ b/tests/qtuitest/testapps/fileDialogSaveApp/fileDialogSaveApp.pro @@ -13,3 +13,10 @@ unix:!maemo* { # Input SOURCES += main.cpp + + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/testapps/graphicsViewTest/graphicsViewTest.pro b/tests/qtuitest/testapps/graphicsViewTest/graphicsViewTest.pro index e1c4f6a..fa21ee2 100644 --- a/tests/qtuitest/testapps/graphicsViewTest/graphicsViewTest.pro +++ b/tests/qtuitest/testapps/graphicsViewTest/graphicsViewTest.pro @@ -10,3 +10,10 @@ unix:!maemo* { HEADERS += mainwindow.h SOURCES += main.cpp mainwindow.cpp mac:DESTDIR=$$BUILDROOT/bin + + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/testapps/testapp1/testapp1.pro b/tests/qtuitest/testapps/testapp1/testapp1.pro index 02e87bd..4cfe3d9 100644 --- a/tests/qtuitest/testapps/testapp1/testapp1.pro +++ b/tests/qtuitest/testapps/testapp1/testapp1.pro @@ -21,3 +21,7 @@ mac { CONFIG-=app_bundle } + + +target.path += \ + /usr/local/bin
\ No newline at end of file diff --git a/tests/qtuitest/testapps/testapp2/testapp2.pro b/tests/qtuitest/testapps/testapp2/testapp2.pro index b5e53bf..f9ba88b 100644 --- a/tests/qtuitest/testapps/testapp2/testapp2.pro +++ b/tests/qtuitest/testapps/testapp2/testapp2.pro @@ -18,3 +18,7 @@ win32 { mac { CONFIG-=app_bundle } + + +target.path += \ + /usr/local/bin
\ No newline at end of file diff --git a/tests/qtuitest/testapps/testapp3/testapp3.pro b/tests/qtuitest/testapps/testapp3/testapp3.pro index a6ed170..46cedd2 100644 --- a/tests/qtuitest/testapps/testapp3/testapp3.pro +++ b/tests/qtuitest/testapps/testapp3/testapp3.pro @@ -19,3 +19,7 @@ mac { CONFIG-=app_bundle } + + +target.path += \ + /usr/local/bin
\ No newline at end of file diff --git a/tests/qtuitest/testapps/testapp4/testapp4.pro b/tests/qtuitest/testapps/testapp4/testapp4.pro index b5e53bf..f9ba88b 100644 --- a/tests/qtuitest/testapps/testapp4/testapp4.pro +++ b/tests/qtuitest/testapps/testapp4/testapp4.pro @@ -18,3 +18,7 @@ win32 { mac { CONFIG-=app_bundle } + + +target.path += \ + /usr/local/bin
\ No newline at end of file diff --git a/tests/qtuitest/tst_qalternatestack/tst_qalternatestack.pro b/tests/qtuitest/tst_qalternatestack/tst_qalternatestack.pro index 188e9ef..ef73695 100644 --- a/tests/qtuitest/tst_qalternatestack/tst_qalternatestack.pro +++ b/tests/qtuitest/tst_qalternatestack/tst_qalternatestack.pro @@ -3,16 +3,17 @@ CONFIG+=unittest QT = core TARGET=tst_qalternatestack CONFIG += qtestlib -INCLUDEPATH += $$SRCROOT/libqtuitest CONFIG-=debug_and_release_target SOURCES+= \ tst_qalternatestack.cpp -symbian { - LIBS+=-L$$OUT_PWD/ -lqtuitest -}else{ - LIBS += -L$$BUILDROOT/lib -} -LIBS += -lqtuitest +include($$SRCROOT/libqtuitest/libqtuitest.pri) + + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/tst_qelapsedtimer/tst_qelapsedtimer.pro b/tests/qtuitest/tst_qelapsedtimer/tst_qelapsedtimer.pro index e260b41..a0754d7 100644 --- a/tests/qtuitest/tst_qelapsedtimer/tst_qelapsedtimer.pro +++ b/tests/qtuitest/tst_qelapsedtimer/tst_qelapsedtimer.pro @@ -2,7 +2,6 @@ TEMPLATE=app CONFIG+=unittest QT = core CONFIG+=qtestlib -INCLUDEPATH += $$SRCROOT/libqtuitest TARGET=tst_qelapsedtimer @@ -11,10 +10,12 @@ CONFIG-=debug_and_release_target SOURCES+= \ tst_qelapsedtimer.cpp -symbian { - LIBS+=-L$$OUT_PWD/ -lqtuitest -}else{ - LIBS += -L$$BUILDROOT/lib -} -LIBS += -lqtuitest +include($$SRCROOT/libqtuitest/libqtuitest.pri) + + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/tst_qinputgenerator/tst_qinputgenerator.pro b/tests/qtuitest/tst_qinputgenerator/tst_qinputgenerator.pro index 45664e7..d8ab687 100644 --- a/tests/qtuitest/tst_qinputgenerator/tst_qinputgenerator.pro +++ b/tests/qtuitest/tst_qinputgenerator/tst_qinputgenerator.pro @@ -3,7 +3,6 @@ CONFIG+=unittest QT = core gui TARGET=tst_qinputgenerator CONFIG+=qtestlib -INCLUDEPATH += $$SRCROOT/libqtuitest CONFIG-=debug_and_release_target @@ -17,10 +16,12 @@ else { SOURCES+=nativeevent_noop.cpp } -symbian { - LIBS+=-L$$OUT_PWD/ -lqtuitest -}else{ - LIBS += -L$$BUILDROOT/lib -} -LIBS += -lqtuitest +include($$SRCROOT/libqtuitest/libqtuitest.pri) + + + +target.path += \ + /usr/local/bin +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/tst_qtestprotocol/tst_qtestprotocol.pro b/tests/qtuitest/tst_qtestprotocol/tst_qtestprotocol.pro index f7c146a..6244019 100644 --- a/tests/qtuitest/tst_qtestprotocol/tst_qtestprotocol.pro +++ b/tests/qtuitest/tst_qtestprotocol/tst_qtestprotocol.pro @@ -3,7 +3,8 @@ CONFIG+=unittest QT = core network TARGET=tst_qtestprotocol CONFIG+=qtestlib -INCLUDEPATH += $$SRCROOT/libqtuitest + +include($$SRCROOT/libqtuitest/libqtuitest.pri) CONFIG-=debug_and_release_target @@ -16,8 +17,9 @@ HEADERS+= \ testprotocol.h \ testprotocolserver.h -symbian { - LIBS+=-L$$OUT_PWD/ -lqtuitest -}else{ - LIBS += -L$$BUILDROOT/lib -} + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/tst_qtuitestnamespace/tst_qtuitestnamespace.pro b/tests/qtuitest/tst_qtuitestnamespace/tst_qtuitestnamespace.pro index 0ce445d..79d38cf 100644 --- a/tests/qtuitest/tst_qtuitestnamespace/tst_qtuitestnamespace.pro +++ b/tests/qtuitest/tst_qtuitestnamespace/tst_qtuitestnamespace.pro @@ -3,11 +3,16 @@ CONFIG+=unittest QT = core gui TARGET=tst_qtuitestnamespace CONFIG+=qtestlib -INCLUDEPATH += $$SRCROOT/libqtuitest -LIBS += -lqtuitest -L$$BUILDROOT/lib CONFIG-=debug_and_release_target SOURCES+= \ tst_qtuitestnamespace.cpp + + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file diff --git a/tests/qtuitest/tst_qtuitestwidgets/tst_qtuitestwidgets.pro b/tests/qtuitest/tst_qtuitestwidgets/tst_qtuitestwidgets.pro index d78c765..c86258f 100644 --- a/tests/qtuitest/tst_qtuitestwidgets/tst_qtuitestwidgets.pro +++ b/tests/qtuitest/tst_qtuitestwidgets/tst_qtuitestwidgets.pro @@ -2,8 +2,6 @@ TEMPLATE=app CONFIG+=unittest CONFIG+=qtestlib QT = core gui -INCLUDEPATH += $$SRCROOT/libqtuitest -LIBS += -lqtuitest -L$$BUILDROOT/lib TARGET=tst_qtuitestwidgets @@ -14,11 +12,16 @@ SOURCES+= \ DEFINES+=QT_STATICPLUGIN +include($$SRCROOT/libqtuitest/libqtuitest.pri) + symbian { - LIBS+=-L$$OUT_PWD -lqtuitest -lqtwidgets + LIBS+=-L$$OUT_PWD -lqtwidgets } -win32 { - LIBS+=$$OUT_PWD/../../lib/qtuitest.lib -} + +target.path += \ + /usr/local/bin + +INSTALLS += \ + target
\ No newline at end of file |