.\" Man page generated from reStructuredText.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "VINYLTEST" "1" "" ""
.SH "نام (NAME)"
vinyltest \- برنامه آزمایش برای Vinyl Cache
.\" Copyright (c) 2010-2020 Varnish Software AS
.\" SPDX-License-Identifier: BSD-2-Clause
.\" See LICENSE file for full text of license
.
.SH "خلاصه دستور (SYNOPSIS)"
.sp
vinyltest [\-hikLlqv] [\-b size] [\-D name=val] [\-j jobs] [\-n iter] [\-t duration] file [file ...]
.SH "توضیحات (DESCRIPTION)"
.sp
برنامه \fIvinyltest\fP یک برنامه اسکریپتمحور است که برای آزمایش Vinyl Cache به کار میرود.
.sp
هنگامی که برنامه \fIvinyltest\fP اجرا شده و یک یا چند فایل اسکریپت به آن داده میشود، میتواند تعدادی ریسه (thread) به عنوان سرورهای پشتیبان (backends)، تعدادی ریسه به عنوان کارخواهها (clients) و یک فرایند \fIvinyld\fP ایجاد کند. سپس از این ساختار برای شبیهسازی یک تراکنش جهت برانگیختن رفتاری خاص استفاده میشود.
.sp
گزینههای زیر در دسترس هستند:
.INDENT 0.0
.TP
.BI \-b \ size
تنظیم اندازه بافر داخلی (پیشفرض: 1M)
.UNINDENT
.sp
\-D name=val تعریف ماکرو برای استفاده در اسکریپتها
.INDENT 0.0
.TP
.B \-h
نمایش راهنما
.TP
.B \-i
تنظیم PATH و vmod_path جهت یافتن باینریهای Vinyl Cache در درخت ساخت (build tree)
.TP
.BI \-j \ jobs
اجرای این تعداد آزمون بهصورت موازی
.TP
.B \-k
ادامه دادن در صورت شکست آزمون
.TP
.B \-L
نگهداشتن همیشگی دایرکتوریهای موقت vtc.*
.TP
.B \-l
نگهداشتن دایرکتوریهای موقت vtc.* در صورت شکست آزمون
.TP
.BI \-n \ iterations
اجرای آزمونها به این تعداد دفعات
.UNINDENT
.sp
\-p name=val ارسال پارامترها به تمام خطوط فرمان \fIvinyld\fP
.INDENT 0.0
.TP
.B \-q
حالت بیصدا: گزارش تنها در صورت شکست
.TP
.BI \-t \ duration
اتمام مهلت زمانی (timeout) آزمونها پس از این مدت (پیشفرض: 60s)
.TP
.B \-v
حالت پرگو: گزارش همیشگی وقایع آزمون
.UNINDENT
.sp
file فایلی که به عنوان اسکریپت استفاده میشود
.sp
اگر \fITMPDIR\fP در متغیرهای محیطی مقداردهی شده باشد، \fIvinyltest\fP برای هر آزمون دایرکتوریهای موقت \fIvtc.*\fP را در \fI$TMPDIR\fP ایجاد میکند، در غیر این صورت آنها را در \fI/tmp\fP میسازد.
.SH "اسکریپتها (SCRIPTS)"
.sp
سینتکس vtc بهطور مفصل در \fIvtc(7)\fP مستند شده است. اگر نمونههای بیشتری نسبت به مثال زیر میخواهید، میتوانید به مخزن کد منبع Vinyl Cache در مسیر \fIbin/vinyltest/tests/\fP نگاهی بیندازید، جایی که تمام آزمونهای رگرسیون (regression tests) برای Vinyl Cache نگهداری میشوند.
.sp
یک مثال:
.INDENT 0.0
.INDENT 3.5
.sp
.EX
vinyltest \(dq#1029\(dq
server s1 {
rxreq
expect req.url == \(dq/bar\(dq
txresp \-gzipbody {[bar]}
rxreq
expect req.url == \(dq/foo\(dq
txresp \-body {
FOOBARF
}
} \-start
vinyl v1 \-vcl+backend {
sub vcl_backend_response {
set beresp.do_esi = true;
if (bereq.url == \(dq/foo\(dq) {
set beresp.ttl = 0s;
} else {
set beresp.ttl = 10m;
}
}
} \-start
client c1 {
txreq \-url \(dq/bar\(dq \-hdr \(dqAccept\-Encoding: gzip\(dq
rxresp
gunzip
expect resp.bodylen == 5
txreq \-url \(dq/foo\(dq \-hdr \(dqAccept\-Encoding: gzip\(dq
rxresp
expect resp.bodylen == 21
} \-run
.EE
.UNINDENT
.UNINDENT
.sp
اسکریپت بالا هنگام اجرا، یک سرور (s1) را شبیهسازی میکند که منتظر دو درخواست متفاوت است. این اسکریپت یک \fIvinyld\fP (v1) را راهاندازی کرده و تعریف سرور پشتیبان را به VCL مشخصشده اضافه میکند (\-vcl+backend). در پایان، کلاینت c1 را راهاندازی میکند که یک کارخواه تکی است و دو درخواست ارسال مینماید.
.SH "آزمایش درخت ساخت (TESTING A BUILD TREE)"
.sp
چه در حال ساخت یک VMOD باشید و چه در حال استفاده از موردی که بهتازگی ساختهاید، میتوانید به \fBvinyltest\fP بگویید که یک \fIvmod_path\fP را به نمونههای \fBvinyld\fP که با دستور \fBvinyl \-start\fP در مورد آزمون (test case) شما آغاز شدهاند، ارسال کند:
.INDENT 0.0
.INDENT 3.5
.sp
.EX
vinyltest \-p vmod_path=... /path/to/*.vtc
.EE
.UNINDENT
.UNINDENT
.sp
به این ترتیب میتوانید از موارد آزمون یکسان برای هر دو حالت VMODهای نصبشده و ساختهشده استفاده کنید:
.INDENT 0.0
.INDENT 3.5
.sp
.EX
server s1 {...} \-start
vinyl v1 \-vcl+backend {
import wossname;
...
} \-start
\&...
.EE
.UNINDENT
.UNINDENT
.sp
شما به \fIvmod_path\fP محدود نیستید و میتوانید هر پارامتری را ارسال کنید؛ این امر به شما امکان میدهد یک ماتریس ساخت (build matrix) را بدون تغییر در مجموعه آزمون (test suite) اجرا کنید. با استفاده از ماکروها نیز میتوانید به همین نتیجه برسید، اما در آن صورت باید در هر بار اجرا تعریف شوند.
.sp
میتوانید خطوط فرمان واقعی \fBvinyld\fP را در خروجیهای آزمون مشاهده کنید که تقریباً به این صورت هستند:
.INDENT 0.0
.INDENT 3.5
.sp
.EX
exec vinyld [vinyltest \-p params] [testing params] [vtc \-arg params]
.EE
.UNINDENT
.UNINDENT
.sp
پارامترهایی که با \fBvinyltest \-p\fP تعریف میکنید ممکن است توسط پارامترهایی که \fBvinyltest\fP برای اجرای صحیح نیاز دارد بازنویسی (override) شوند، و آنها نیز ممکن است به نوبه خود توسط پارامترهای تنظیمشده در اسکریپتهای آزمون بازنویسی گردند.
.sp
همچنین یک حالت ویژه وجود دارد که در آن \fBvinyltest\fP برای یافتن باینریهای Vinyl Cache (برنامهها و VMODها) در درخت ساخت اطراف باینری \fBvinyltest\fP، مقادیر PATH و \fIvmod_path\fP را خود ایجاد میکند. این حالت برای آزمایش Vinyl Cache در حال توسعه در نظر گرفته شده است و در صورت تنظیم \fIvmod_path\fP توسط شما، آن را نادیده خواهد گرفت.
.sp
اگر نیاز دارید VMOD خود را در برابر درخت ساخت Vinyl Cache آزمایش کنید، ابتدا باید آن را نصب کنید؛ برای مثال در یک دایرکتوری موقت. با اطلاعات ارائهشده توسط \fIpkg\-config(1)\fP آن نصب، میتوانید یک PATH مناسب برای دسترسی به برنامههای Vinyl و یک \fIvmod_path\fP برای دسترسی به VMOD خود و همچنین VMODهای توکار ایجاد کنید:
.INDENT 0.0
.INDENT 3.5
.sp
.EX
export PKG_CONFIG_PATH=/path/to/install/lib/pkgconfig
BINDIR=\(dq$(pkg\-config \-\-variable=bindir vinylapi)\(dq
SBINDIR=\(dq$(pkg\-config \-\-variable=sbindir vinylapi)\(dq
PATH=\(dqSBINDIR:BINDIR:$PATH\(dq
VMODDIR=\(dq$(pkg\-config \-\-variable=vmoddir vinylapi)\(dq
VMOD_PATH=\(dq/path/to/your/vmod/build/dir:$VMODDIR\(dq
vinyltest \-p vmod_path=\(dq$VMOD_PATH\(dq ...
.EE
.UNINDENT
.UNINDENT
.SH "همچنین ببینید (SEE ALSO)"
.INDENT 0.0
.IP \(bu 2
مخزن کد منبع vinyltest همراه با آزمونها
.IP \(bu 2
\fIvinylhist(1)\fP
.IP \(bu 2
\fIvinyllog(1)\fP
.IP \(bu 2
\fIvinylncsa(1)\fP
.IP \(bu 2
\fIvinylstat(1)\fP
.IP \(bu 2
\fIvinyltop(1)\fP
.IP \(bu 2
\fIvcl(7)\fP
.IP \(bu 2
\fIvtc(7)\fP
.IP \(bu 2
\fIvmod_vtc(3)\fP
.UNINDENT
.SH "تاریخچه (HISTORY)"
.sp
برنامه vinyltest توسط Poul\-Henning Kamp
< > با همکاری Redpill\-Linpro توسعه داده شد. این صفحه راهنما در ابتدا توسط Stig Sandbeck Mathisen < > نوشته شده و سپس توسط Kristian Lyngstøl < > بهروزرسانی شده است.
.SH "کپیرایت و تکثیر (COPYRIGHT)"
.sp
این سند تحت همان مجوز خود Vinyl Cache مجوزدهی شده است. برای جزئیات به LICENCE مراجعه کنید.
.INDENT 0.0
.IP \(bu 2
حق نشر (c) 2007\-2016 متعلق به Varnish Software AS
.UNINDENT
.\" Generated by docutils manpage writer.
.