แพลตฟอร์มที่ให้คุณส่งและทดสอบตัวอย่างรหัสออนไลน์เพื่อฝึกฝน
LaunchTestrun ขึ้นอยู่กับซอฟต์แวร์ต่อไปนี้ที่จะเรียกใช้:
ในการติดตั้งแพ็คเกจเหล่านี้ใน Ubuntu หรือ Debian โปรดเรียกใช้คำสั่งต่อไปนี้:
หากต้องการติดตั้งเชนเครื่องมือที่ต้องการให้เรียกใช้
sudo apt-get update
sudo apt-get install default-jre default-jdk build-essential python2 python3 mono-devel
release/ ไปยัง webapps/ ไดเรกทอรีในเซิร์ฟเวอร์ Apache Tomcat ของคุณ (หากคุณใช้ขั้นตอนก่อนหน้านี้ Tomcat ควรติดตั้งใน ~/ LaunchTestrun) และข้ามไปยังขั้นตอนที่ 5LaunchTestRun.warwebapps/ Directorybin/catalina.sh ในการติดตั้ง Apache Tomcat ของคุณด้วย catalina.sh ในไดเรกทอรีนี้ (ปัญหาแพทช์กับ Java 9 และ Tomcat 8)bin/ ไดเรกทอรีในการติดตั้ง Tomcat ของคุณทำงานได้โดยเรียกใช้ chmod +x *.sh ใน bin/ ไดเรกทอรีของการติดตั้ง Tomcat ของคุณ ..bin/startup.sh ในไดเรกทอรีการติดตั้ง Tomcat ของคุณเพื่อเริ่ม LaunchTestrun หากคุณต้องการความปลอดภัยมากขึ้นในการติดตั้ง LaunchTestrun ของคุณ (แนะนำอย่างยิ่งเนื่องจากคนอื่น ๆ จะเรียกใช้รหัสบนเซิร์ฟเวอร์ของคุณ!) คุณควรสร้างผู้ใช้ใหม่ที่มีสิทธิ์ใช้งานและเข้าถึงไฟล์ภายในไดเรกทอรีการติดตั้ง Tomcat เท่านั้น เพื่อรักษาความปลอดภัยการตั้งค่าของคุณหลังจากเรียกใช้ bin/startup.sh เป็นครั้งแรกหลังจากย้ายไฟล์. war เรียกใช้คำสั่งต่อไปนี้ (แทนที่ข้อความทั้งหมดในวงเล็บด้วยตำแหน่งที่ใช้กับการติดตั้งเฉพาะของคุณ):
su root
chmod 755 [ YOUR TOMCAT DIRECTORY HERE ] -R
cd [ YOUR TOMCAT DIRECTORY HERE ]
useradd launchtestrun
mkdir work
touch webapps/LaunchTestRun/forensics.txt
chown launchtestrun:launchtestrun -R work
chown launchtestrun:launchtestrun -R logs
chown launchtestrun:launchtestrun -R webapps/LaunchTestRun
chown launchtestrun:launchtestrun -R webapps/LaunchTestRun/upload
chown launchtestrun:launchtestrun -R webapps/LaunchTestRun/forensics.txt
หลังจากตั้งค่าสิทธิ์เหล่านี้เมื่อเริ่มต้นเซิร์ฟเวอร์ LaunchTestrun ให้เปลี่ยนไปใช้ผู้ใช้ launchtestrun ก่อนที่จะเรียกใช้ startup.sh ด้วยคำสั่งต่อไปนี้:
su launchtestrun
cd [ YOUR TOMCAT DIRECTORY HERE ]/bin
./startup.sh
ในการดูบันทึกทางนิติวิทยาศาสตร์ของไฟล์ทั้งหมดที่อัปโหลดและดำเนินการ (มี IP, อินพุต, เอาต์พุต, แฮช MD5, เวลาอัปโหลด ฯลฯ ), ดู webapps/LaunchTestRun/forensics.txt
หมายเหตุ: ขอแนะนำให้ initalize ที่เก็บ GIT ใน webapps/LaunchTestRun/problems เพื่อให้ปัญหาสามารถอัพโหลดได้จากระยะไกลแก้ไขและเปลี่ยนกลับหากจำเป็น
webapps/LaunchTestRun/problems ภายในไดเรกทอรี Apache Tomcat ของคุณ สร้างไดเรกทอรีใหม่ที่มีโครงสร้างต่อไปนี้: [+] Name of problem
|- config.json
|- judge.in
|- judge.out
|- sample.in
|- sample.out
config.json ควรมีข้อมูลต่อไปนี้:
{
"cpid":"12345",
"title":"Sample Tile 1",
"description":"Test Problem Description",
"pdf":"http://www.pdfsite.org/files/test.pdf",
"setinfo":"Fall Competition 2019",
"samplein":"sample.in",
"sampleout":"sample.out",
"judgein":"judge.in",
"judgeout":"judge.out",
"inputname":"input.txt",
"timeout":"2000"
}
ที่ไหน:
cpid คือ ID # สำหรับปัญหาที่คุณต้องการกำหนดtitle คือชื่อสำหรับปัญหาที่คุณต้องการกำหนดdescription คือคำอธิบายสำหรับปัญหาที่คุณต้องการกำหนดpdf เป็นลิงค์ URL ไปยังไฟล์ PDF ที่คุณต้องการแสดงพร้อมกับปัญหาsetinfo เป็นข้อมูลเกี่ยวกับปัญหาที่เกิดขึ้นซึ่งปัญหาที่คุณต้องการกำหนดมาจากsamplein คือชื่อของไฟล์อินพุตตัวอย่าง (อินพุตที่มอบให้กับโปรแกรมที่ผู้ใช้อัปโหลด)sampleout เป็นชื่อของไฟล์เอาต์พุตตัวอย่าง (เอาต์พุตที่คาดไว้สำหรับอินพุต)judgein เป็นชื่อของไฟล์อินพุตผู้พิพากษา (อินพุตที่มอบให้กับโปรแกรมที่ผู้ใช้อัปโหลด)judgeout เป็นชื่อของไฟล์เอาท์พุทผู้พิพากษา (เอาต์พุตที่คาดไว้สำหรับอินพุต)inputname เป็นชื่อของไฟล์อินพุตที่โปรแกรมที่ผู้ใช้อัปโหลดจะอ่านว่าไฟล์อินพุตตัวอย่าง/ผู้ตัดสินจะถูกเปลี่ยนชื่อเป็นtimeout เป็นจำนวนเต็มที่กำหนดจำนวนมิลลิวินาทีว่าโปรแกรมจะได้รับการจัดสรรให้ดำเนินการก่อนการเลิกบังคับwebapps/LaunchTestRun/settings.json ซึ่งมีเส้นทางที่ LaunchTestrun จะมองหาคอมไพเลอร์ เซิร์ฟเวอร์ LaunchTestrun สามารถเข้าถึงได้โดยค่าเริ่มต้นจาก: http://127.0.0.1:8080/LaunchTestRun/index.html/ หลังจากกำหนดค่าด้วย Tomcat ในส่วนก่อนหน้า รายการปัญหาที่เพิ่มสามารถเข้าถึงได้โดยค่าเริ่มต้นจาก: http://127.0.0.1:8080/LaunchTestRun/listproblems.html/