Index: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.rax.c =================================================================== --- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.rax.c (nonexistent) +++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.rax.c (revision 348706) @@ -0,0 +1,43 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2019 Mariusz Zaborski + * Use is subject to license terms. + */ + +__attribute__((optnone)) void +frax(void) +{ + asm volatile("mov $0x41414141, %%rax" + : : : "rax" + ); +} + +int +main(void) +{ + + while (1) { + frax(); + } + return (0); +} Property changes on: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.rax.c ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.rax.d =================================================================== --- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.rax.d (nonexistent) +++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.rax.d (revision 348706) @@ -0,0 +1,36 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2019 Mariusz Zaborski + * Use is subject to license terms. + */ + +#pragma D option quiet + +pid$1::frax:return / uregs[R_RAX] == 0x41414141 / { + exit(0); +} + +pid$1::frax:return / uregs[R_RAX] != 0x41414141 / { + printf("wrong rax value: %d\n", uregs[R_RAX]); + exit(1); +} Property changes on: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.rax.d ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.uregsarray.d =================================================================== --- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.uregsarray.d (nonexistent) +++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.uregsarray.d (revision 348706) @@ -0,0 +1,82 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2019 Mariusz Zaborski + * Use is subject to license terms. + */ + +/* + * ASSERTION: + * Positive test to make sure that we can invoke amd64 + * ureg[] aliases. + * + * SECTION: User Process Tracing/uregs Array + * + * NOTES: This test does no verification - the value of the output + * is not deterministic. + */ + +#pragma D option quiet + +BEGIN +{ + printf("R_GS = 0x%x\n", uregs[R_GS]); + printf("R_ES = 0x%x\n", uregs[R_ES]); + printf("R_DS = 0x%x\n", uregs[R_DS]); + printf("R_CS = 0x%x\n", uregs[R_CS]); + printf("R_RFL = 0x%x\n", uregs[R_RFL]); + printf("R_SS = 0x%x\n", uregs[R_SS]); + printf("R_TRAPNO = 0x%x\n", uregs[R_TRAPNO]); + + printf("R_URSP = 0x%x\n", uregs[R_RSP]); + printf("R_RDI = 0x%x\n", uregs[R_RDI]); + printf("R_RSI = 0x%x\n", uregs[R_RSI]); + printf("R_RBP = 0x%x\n", uregs[R_RBP]); + printf("R_RBX = 0x%x\n", uregs[R_RBX]); + printf("R_RDX = 0x%x\n", uregs[R_RDX]); + printf("R_RCX = 0x%x\n", uregs[R_RCX]); + printf("R_RAX = 0x%x\n", uregs[R_RAX]); + printf("R_RIP = 0x%x\n", uregs[R_RIP]); + printf("R_RDI = 0x%x\n", uregs[R_RDI]); + printf("R_R9 = 0x%x\n", uregs[R_R9]); + printf("R_R10 = 0x%x\n", uregs[R_R10]); + printf("R_R11 = 0x%x\n", uregs[R_R11]); + printf("R_R12 = 0x%x\n", uregs[R_R12]); + printf("R_R13 = 0x%x\n", uregs[R_R13]); + printf("R_R14 = 0x%x\n", uregs[R_R14]); + printf("R_R15 = 0x%x\n", uregs[R_R15]); + + /* 32 bits */ + printf("R_EFL = 0x%x\n", uregs[R_EFL]); + printf("R_UESP = 0x%x\n", uregs[R_UESP]); + printf("R_ERR = 0x%x\n", uregs[R_ERR]); + printf("R_EIP = 0x%x\n", uregs[R_EIP]); + printf("R_EDI = 0x%x\n", uregs[R_EDI]); + printf("R_ESI = 0x%x\n", uregs[R_ESI]); + printf("R_EBP = 0x%x\n", uregs[R_EBP]); + printf("R_EBX = 0x%x\n", uregs[R_EBX]); + printf("R_EDX = 0x%x\n", uregs[R_EDX]); + printf("R_ECX = 0x%x\n", uregs[R_ECX]); + printf("R_EAX = 0x%x\n", uregs[R_EAX]); + + exit(0); +} Property changes on: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/amd64/arrays/tst.uregsarray.d ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/cddl/usr.sbin/dtrace/tests/Makefile =================================================================== --- head/cddl/usr.sbin/dtrace/tests/Makefile (revision 348705) +++ head/cddl/usr.sbin/dtrace/tests/Makefile (revision 348706) @@ -1,18 +1,22 @@ # $FreeBSD$ .include TESTS_SUBDIRS+= common .if ${MACHINE_CPUARCH} == "i386" TESTS_SUBDIRS+= i386 .endif +.if ${MACHINE_CPUARCH} == "amd64" +TESTS_SUBDIRS+= amd64 +.endif + .PATH: ${SRCTOP}/tests KYUAFILE= yes .PATH: ${.CURDIR}/tools SCRIPTSDIR= ${TESTSDIR} SCRIPTS= dtest.sh .include Index: head/cddl/usr.sbin/dtrace/tests/amd64/arrays/Makefile =================================================================== --- head/cddl/usr.sbin/dtrace/tests/amd64/arrays/Makefile (nonexistent) +++ head/cddl/usr.sbin/dtrace/tests/amd64/arrays/Makefile (revision 348706) @@ -0,0 +1,20 @@ +# $FreeBSD$ + +# +# This Makefile was generated by $srcdir/cddl/usr.sbin/dtrace/tests/tools/genmakefiles.sh. +# + +PACKAGE= tests + +${PACKAGE}FILES= \ + tst.rax.d \ + tst.uregsarray.d \ + +TESTEXES= \ + + +CFILES= \ + tst.rax.c \ + + +.include "../../dtrace.test.mk" Property changes on: head/cddl/usr.sbin/dtrace/tests/amd64/arrays/Makefile ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/cddl/usr.sbin/dtrace/tests/tools/genmakefiles.sh =================================================================== --- head/cddl/usr.sbin/dtrace/tests/tools/genmakefiles.sh (revision 348705) +++ head/cddl/usr.sbin/dtrace/tests/tools/genmakefiles.sh (revision 348706) @@ -1,103 +1,103 @@ # $FreeBSD$ usage() { cat <<__EOF__ >&2 usage: $(basename $0) This script regenerates the DTrace test suite makefiles. It should be run whenever \$srcdir/cddl/contrib/opensolaris/cmd/dtrace/test/tst is modified. __EOF__ exit 1 } # Format a file list for use in a make(1) variable assignment: take the # basename of each input file and append " \" to it. fmtflist() { awk 'function bn(f) { sub(".*/", "", f) return f } {print " ", bn($1), " \\"}' } genmakefile() { local class=$1 local group=$2 local tdir=${CONTRIB_TESTDIR}/${class}/${group} local tfiles=$(find $tdir -type f -a \ \( -name \*.d -o -name \*.ksh -o -name \*.out \) | sort | fmtflist) local tcfiles=$(find $tdir -type f -a -name \*.c | sort | fmtflist) local texes=$(find $tdir -type f -a -name \*.exe | sort | fmtflist) # One-off variable definitions. local special case "$group" in proc) special=" LIBADD.tst.sigwait.exe+= rt " ;; raise) special=" TEST_METADATA.t_dtrace_contrib+= required_memory=\"4g\" " ;; safety) special=" TEST_METADATA.t_dtrace_contrib+= required_memory=\"4g\" " ;; uctf) special=" WITH_CTF=YES " ;; esac local makefile=$(mktemp) cat <<__EOF__ > $makefile # \$FreeBSD$ # # This Makefile was generated by \$srcdir${ORIGINDIR#${TOPDIR}}/genmakefiles.sh. # PACKAGE= tests \${PACKAGE}FILES= \\ $tfiles TESTEXES= \\ $texes CFILES= \\ $tcfiles $special .include "../../dtrace.test.mk" __EOF__ mv -f $makefile ${ORIGINDIR}/../${class}/${group}/Makefile } set -e if [ $# -ne 0 ]; then usage fi export LC_ALL=C readonly ORIGINDIR=$(realpath $(dirname $0)) readonly TOPDIR=$(realpath ${ORIGINDIR}/../../../../..) readonly CONTRIB_TESTDIR=${TOPDIR}/cddl/contrib/opensolaris/cmd/dtrace/test/tst -for class in common i386; do +for class in common i386 amd64; do for group in $(find ${CONTRIB_TESTDIR}/$class -mindepth 1 -maxdepth 1 -type d); do genmakefile $class $(basename $group) done done Index: head/etc/mtree/BSD.tests.dist =================================================================== --- head/etc/mtree/BSD.tests.dist (revision 348705) +++ head/etc/mtree/BSD.tests.dist (revision 348706) @@ -1,1084 +1,1088 @@ # $FreeBSD$ # # Please see the file src/etc/mtree/README before making changes to this file. # /set type=dir uname=root gname=wheel mode=0755 . bin cat .. chflags .. chmod .. date .. dd .. echo .. expr .. ln .. ls .. mkdir .. mv .. pax .. pkill .. pwait .. rm .. rmdir .. sh builtins .. errors .. execution .. expansion .. invocation .. parameters .. parser .. set-e .. .. sleep .. test .. .. cddl lib .. sbin .. usr.bin ctfconvert .. ztest .. .. usr.sbin dtrace common aggs .. arithmetic .. arrays .. assocs .. begin .. bitfields .. buffering .. builtinvar .. cg .. clauses .. cpc .. decls .. drops .. dtraceUtil .. end .. env .. enum .. error .. exit .. fbtprovider .. funcs .. grammar .. include .. inline .. io .. ip .. java_api .. json .. lexer .. llquantize .. mdb .. mib .. misc .. multiaggs .. offsetof .. operators .. pid .. plockstat .. pointers .. pragma .. predicates .. preprocessor .. print .. printa .. printf .. privs .. probes .. proc .. profile-n .. providers .. raise .. rates .. safety .. scalars .. sched .. scripting .. sdt .. sizeof .. speculation .. stability .. stack .. stackdepth .. stop .. strlen .. strtoll .. struct .. sugar .. syscall .. sysevent .. tick-n .. trace .. tracemem .. translators .. typedef .. types .. uctf .. union .. usdt .. ustack .. vars .. version .. .. i386 arrays .. funcs .. pid .. ustack .. .. + amd64 + arrays + .. + .. .. zfsd .. .. .. etc rc.d .. .. games .. gnu lib .. usr.bin diff .. .. .. lib atf libatf-c detail .. .. libatf-c++ detail .. .. test-programs .. .. csu dynamic .. dynamiclib .. static .. .. googletest gmock .. gmock_main .. gtest .. gtest_main .. .. libarchive .. libbe .. libc c063 .. db .. gen execve .. posix_spawn .. .. hash data .. .. iconv .. inet .. locale .. net getaddrinfo data .. .. .. nss .. regex data .. .. resolv .. rpc .. ssp .. setjmp .. stdio .. stdlib .. string .. sys .. time .. tls dso .. .. termios .. ttyio .. .. libcam .. libcasper services cap_dns .. cap_grp .. cap_pwd .. cap_sysctl .. .. .. libcrypt .. libdevdctl .. libkvm .. libmp .. libnv .. libproc .. libregex data .. .. librt .. libsbuf .. libthr dlopen .. .. libutil .. libxo .. msun .. .. libexec atf atf-check .. atf-sh .. .. rtld-elf .. tftpd .. .. sbin bectl .. dhclient .. devd .. growfs .. ifconfig .. mdconfig .. pfctl files .. .. .. secure lib .. libexec .. usr.bin .. usr.sbin .. .. share examples tests atf .. googletest .. plain .. tap .. .. .. zoneinfo .. .. sys acl .. aio .. audit .. auditpipe .. capsicum .. cddl zfs bin .. include .. tests acl cifs .. nontrivial .. trivial .. .. atime .. bootfs .. cache .. cachefile .. clean_mirror .. cli_root zfs_upgrade .. zfs_promote .. zfs_clone .. zfs_property .. zfs_destroy .. zpool_create .. zpool_history .. zpool_expand .. zpool_remove .. zfs_mount .. zfs_unshare .. zdb .. zpool_online .. zpool_get .. zpool_export .. zfs_copies .. zfs_get .. zfs .. zpool_clear .. zpool_import blockfiles .. .. zpool .. zpool_offline .. zpool_replace .. zfs_rollback .. zpool_set .. zfs_send .. zfs_set .. zpool_detach .. zfs_diff .. zpool_scrub .. zfs_inherit .. zfs_snapshot .. zfs_share .. zpool_destroy .. zpool_status .. zfs_unmount .. zfs_receive .. zfs_create .. zpool_upgrade blockfiles .. .. zpool_add .. zfs_rename .. zpool_attach .. zfs_reservation .. .. cli_user misc .. zfs_list .. zpool_iostat .. zpool_list .. .. compression .. ctime .. delegate .. devices .. exec .. grow_pool .. grow_replicas .. history .. hotplug .. hotspare .. inheritance .. interop .. inuse .. iscsi .. large_files .. largest_pool .. link_count .. migration .. mmap .. mount .. mv_files .. nestedfs .. no_space .. online_offline .. pool_names .. poolversion .. quota .. redundancy .. refquota .. refreserv .. rename_dirs .. replacement .. reservation .. rootpool .. rsend .. scrub_mirror .. slog .. snapshot .. snapused .. sparse .. threadsappend .. truncate .. txg_integrity .. userquota .. utils_test .. write_dirs .. xattr .. zfsd .. zil .. zinject .. zones .. zvol zvol_ENOSPC .. zvol_cli .. zvol_misc .. zvol_swap .. .. zvol_thrash .. .. .. .. dtrace .. fifo .. file .. fs tmpfs .. .. geom class concat .. eli .. gate .. gpt .. mirror .. nop .. part .. raid3 .. shsec .. stripe .. uzip etalon .. .. .. .. kern acct .. execve .. pipe .. .. kqueue libkqueue .. .. mac bsdextended .. portacl .. .. mqueue .. net .. netinet .. netipsec tunnel .. .. netmap .. netpfil pf ioctl .. .. .. opencrypto .. pjdfstest chflags .. chmod .. chown .. ftruncate .. granular .. link .. mkdir .. mkfifo .. mknod .. open .. rename .. rmdir .. symlink .. truncate .. unlink .. utimensat .. .. posixshm .. sys .. vfs .. vm .. .. usr.bin apply .. awk .. basename .. bmake archives fmt_44bsd .. fmt_44bsd_mod .. fmt_oldbsd .. .. basic t0 .. t1 .. t2 .. t3 .. .. execution ellipsis .. empty .. joberr .. plus .. .. shell builtin .. meta .. path .. path_select .. replace .. select .. .. suffixes basic .. src_wild1 .. src_wild2 .. .. syntax directive-t0 .. enl .. funny-targets .. semi .. .. sysmk t0 2 1 .. .. mk .. .. t1 2 1 .. .. mk .. .. t2 2 1 .. .. mk .. .. .. variables modifier_M .. modifier_t .. opt_V .. t0 .. .. .. bsdcat .. calendar .. cmp .. compress .. cpio .. col .. comm .. csplit .. cut .. dc .. diff .. dirname .. du .. file2c .. find .. fold .. getconf .. grep .. gzip .. head .. hexdump .. ident .. indent .. join .. jot .. lastcomm .. limits .. m4 .. mkimg .. ncal .. opensm .. pr .. printf .. procstat .. rs .. sdiff .. sed regress.multitest.out .. .. seq .. soelim .. stat .. tail .. tar .. timeout .. tr .. truncate .. units .. uudecode .. uuencode .. uniq .. vmstat .. xargs .. xinstall .. xo .. yacc yacc .. .. .. usr.sbin chown .. etcupdate .. extattr .. fstyp .. makefs .. newsyslog .. nmtree .. praudit .. pw .. rpcbind .. sa .. .. .. # vim: set expandtab ts=4 sw=4: